SpringBoot+Vue豆宝社区前后端分离项目手把手实战系列教程05---每日一句功能实现

简介: SpringBoot+Vue豆宝社区前后端分离项目手把手实战系列教程05---每日一句功能实现

豆宝社区项目实战教程简介


本项目实战教程配有免费视频教程,配套代码完全开源。手把手从零开始搭建一个目前应用最广泛的Springboot+Vue前后端分离多用户社区项目。本项目难度适中,为便于大家学习,每一集视频教程对应在Github上的每一次提交。


项目首页截图


代码开源地址

前端

后端

视频教程地址

视频教程

前端技术栈


Vue

Vuex

Vue Router

Axios

Bulma

Buefy

Element

Vditor

DarkReader


后端技术栈


Spring Boot

Mysql

Mybatis

MyBatis-Plus

Spring Security

JWT

Lombok


每日一句后端

1.实体类

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@Data
@NoArgsConstructor
@TableName("bms_tip")
public class BmsTip implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 主键
     */
    private Integer id;
    /**
     * 内容
     */
    @TableField("`content`")
    private String content;
    /**
     * 作者
     */
    private String author;
    /**
     * 1:使用,0:过期
     */
    private boolean type;
}

2.mapper接口层

public interface BmsTipMapper extends BaseMapper<BmsTip> {
}

3.BmsTipMapper.xml

resource/mapper创建BmsTipMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.notepad.blog.mapper.BmsTipMapper">
    <select id="getRandomTip" resultType="com.notepad.blog.domain.BmsTip">
        select *
        from bms_tip
        order by rand()
        limit 1
    </select>
</mapper>


每日一句前端

1.在src下创建/api/tip.js

import request from '@/utils/request'
export function getTodayTip() {
    return request({
        url: '/tip/today',
        method: 'get'
    })
}

2.修改tip.vue

<template>
  <div>
    <el-card>
      <div class="header">
        <span>每日一句</span>
      </div>
      <div class="has-text-left block">
          {{ tip.content }}
      </div>
      <div class="has-text-right mt-5 block">
          {{ tip.author }}
      </div>
    </el-card>
  </div>
</template>
<script>
import { getTodayTip } from "@/api/tip";
export default {
  name: "CardBar",
  data() {
    return {
        tip: {}
    };
  },
  created() {
      this.fetchTodayTip()
  },
  methods: {
      fetchTodayTip() {
          getTodayTip().then(Response => {
              const { data } = response
              this.tip = data
          })
      }
  }
};
</script>


3.测试页面



目录
相关文章
|
3天前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的房屋租赁App的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的房屋租赁App的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的房屋租赁App的详细设计和实现(源码+lw+部署文档+讲解等)
|
3天前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的武汉市公交路线查询系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的武汉市公交路线查询系统的详细设计和实现(源码+lw+部署文档+讲解等)
|
3天前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的旅游攻略系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的旅游攻略系统的详细设计和实现(源码+lw+部署文档+讲解等)
|
3天前
|
JavaScript Java 测试技术
基于SpringBoot+Vue的志愿服务管理系统设计和实现(源码+LW+部署讲解)
基于SpringBoot+Vue的志愿服务管理系统设计和实现(源码+LW+部署讲解)
26 6
|
3天前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的公园管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的公园管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
|
2天前
|
JavaScript
|
4天前
|
JavaScript
【vue】el-dialog 内的tinymce弹窗被遮挡的解决办法 及 tinymce打开弹出菜单后直接关闭对话组件,导致该弹出菜单残留
【vue】el-dialog 内的tinymce弹窗被遮挡的解决办法 及 tinymce打开弹出菜单后直接关闭对话组件,导致该弹出菜单残留
14 6
|
1天前
|
存储 缓存 JavaScript
vue代码优化方案
【7月更文挑战第13天】 **Vue.js 优化要点:** 分解大组件以提高复用性和加载速度;利用计算属性与侦听器优化数据处理;使用Object.freeze()减少响应式数据;借助Vuex或Composition API管理状态;实现虚拟滚动和无限加载提升长列表性能;路由懒加载减少初始加载时间;用Vue DevTools检测性能瓶颈;定期代码审查与重构;应用缓存策略;遵循最佳实践与团队规范,提升应用整体质量。
10 2
|
4天前
|
JavaScript 前端开发
【vue】 el-table解决分页不能筛选全部数据的问题
【vue】 el-table解决分页不能筛选全部数据的问题
15 4
|
4天前
|
JavaScript
【vue】 vue2 监听滚动条滚动事件
【vue】 vue2 监听滚动条滚动事件
10 1