基于springboot+vue+element UI+mybatis-plus的简单分页

基于springboot+vue+element UI+mybatis-plus的简单分页

@author chajintao

1.前端(vue+element)

1.1 工具(HBuilderX,node.js)

1.1.1 下载和安装

下载HBuilderX,官网地址为https://www.dcloud.io/hbuilderx.html
下载node.js,官网为http://nodejs.cn/
安装HBuilderX和node.js,傻瓜式安装,一路确认即可。

1.1.2 验证

首先WIN+R,输入CMD,打开命令行
输入node -v,成功则显示版本号
输入npm -v,同上

1.2 创建前端工程

1.2.1 项目创建

在这里插入图片描述

1.2.2 项目架构

在这里插入图片描述
项目创建完成,接下来就开始配置。

1.3 具体配置

1.3.1 插件

首先我们确认需要什么插件,axois,router,vuex,element-ui
接下来右键,点击使用命令行窗口打开所在目录,使用npm安装
安装成功后,结构如下:

{
  "name": "default",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build"
  },
  "dependencies": {
    "axios": "^0.26.1",
    "core-js": "^2.6.5",
    "element-ui": "^2.15.8",
    "vue": "^2.6.10",
    "vue-router": "^3.5.3",
    "vuex": "^3.6.2"
  },
  "devDependencies": {
    "@vue/cli-plugin-babel": "^3.8.0",
    "@vue/cli-service": "^3.8.0",
    "vue-template-compiler": "^2.6.10"
  }
}
1.3.2 vue.config.js

这边是连接spring boot 后台地址配置,直接网上拿来用

module.exports={
	devServer:{
		proxy:{
			"":{
				target:"http://localhost:8080",//访问的域名地址
				changeOrigin:true,
				//开启代理,在本地会创建一个虚拟服务端,然后发送请求的数据,
				//并同时接收请求的数据,这样服务端和服务端进行数据的交互就不会有跨域问题
			pathRewrite:{
				'^':''
				//用''代替target里的地址
			}
			}
		}
	}
}
1.3.3 main.js

安装了插件,就要声明使用

import Vue from 'vue'
import App from './App.vue'

//导入路由
import router from './router/router.js'


//导入element ui
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'

//导入axios并实例化
import axios from 'axios'
Vue.prototype.$axios = axios

//引入全局数据控制


//声明使用ui
Vue.use(ElementUI);
Vue.config.productionTip = false

new Vue({
	el:'#app',
	//配置路由
	router:router,
	render: h => h(App),
	components:{App},
	template:'<App/>'
}).$mount('#app')
1.3.4 创建news.vue

该分页vue的实现是十分简单的,在中写前端格式,直接一个表格加分页,在

<div style="padding: 10px">
	    <el-table
	        v-loading="loading"
	        :data="tableData"
	        border
	        stripe
	        style="width: 100%">
	      <el-table-column
	          prop="id"
	          label="ID"
	          sortable
	      >
	      </el-table-column>
	      <el-table-column
	          prop="title"
	          label="标题">
	      </el-table-column>
	      <el-table-column
	          prop="author"
	          label="作者">
	      </el-table-column>
	      <el-table-column
	          prop="time"
	          label="时间">
	      </el-table-column>
	      <el-table-column label="操作">
	        <template #default="scope">
	          <el-button icon="el-icon-message" size="mini" @click="details(scope.row)" title="详情"></el-button>
	          <el-button icon="el-icon-edit" size="mini" @click="handleEdit(scope.row)" title="编辑"></el-button>
			  
	          <el-button size="mini" icon="el-icon-delete" type="danger"></el-button>   
	        </template>
	      </el-table-column>
	    </el-table>
	
	    <div style="margin: 10px 0">
	      <el-pagination
	          @size-change="handleSizeChange"
	          @current-change="handleCurrentChange"
	          :current-page="this.currentPage"
	          :page-sizes="[10, 20, 50, 100]"
	          :page-size="this.pageSize"
	          layout="total, sizes, prev, pager, next, jumper"
	          :total="total">
	      </el-pagination>
	    </div>
	  </div>

script如下:一个是load方法,是刷新获取数据,handleSizeChange是改变页数大小,handleCurrentChange是切换当前页

export default {
   
		name:"news",
		data(){
   
			return{
   
				loading:true,
				form:{
   },
				dialogVisible:false,
				currentPage:1,
				pageSize:10,
				total:0,
				tableData:[],
				vis:false,
				detail:{
   },
			}
		},
		created() {
   
			this.load()
		},
		methods:{
   
			//获取某行数据
			load(){
   
				this.loading = true
				this.$axios({
   
					url:'/vue/news',
					method:'get',
					params:{
   
						currentPage:this.currentPage,
						pageSize:this.pageSize,
					}
				})
				.then(res =>{
   
					console.log(res)
					this.loading = false
					this.$data.tableData = res.data.data.records
					this.total = res.data.data.total
				})
			},
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值