Vue引入element-plus-04

我们这次开发是使用vue的脚手架来进行开发,前面我们已经使用过最原生的方式去编写我们的vue的语法,从今天开始就使用vue的脚手架,但是前提是你需要用于node的环境

在我们开始之前,我们至少需要有node

npm是什么?

npm是一个强大的包管理工具,它使开发人员能够轻松地安装、更新和管理项目依赖的包。通过初始化一个package.json 文件,我们可以描述你的项目并记录其依赖关系。使用npm install命令,我们可以安装和管理包。使用npm publish命令,我们可以发布自己的包(由于日常很少涉及发布自己的包,这里就不总结了)。无论是在开发过程中还是在分享你的包时,npm都提供了丰富的功能和命令来满足你的需求

npm不需要单独安装。在安装Node的时候,会连带一起安装npm

构建Vue项目

安装淘宝的镜像加速:

我们为什么要安装淘宝的镜像呢? 因为我们使用npm的话下载的速度是很慢的,因为使用的是国外的镜像,很大的机率是会报错的,所以这里我们使用淘宝的镜像,是我们国内的下载会很快

复制代码
npm config set registry=http://registry.npm.taobao.org

查看镜像源更换是否生效

复制代码
npm config get registry

接下来就是安装我们的vue的环境

安装vue

-g代表全局安装

复制代码
npm install vue -g

安装vue-cli:

CLI (@vue/cli) 是一个全局安装的 npm 包,提供了终端里的 vue 命令。它可以通过 vue create 快速搭建一个新项目,或者直接通过 vue serve 构建新想法的原型。

复制代码
cnpm install vue-cli -g

安装webpack (用于打包项目)

复制代码
npm install webpack -g

接下来就是创建我们的vue的项目,首先先找到你要存放vue项目的地方,我们在最前面输入cmd 然后进入控制台,会是在当前的目录下

接下来输入创建

html 复制代码
vue create 项目名字

这里选择最后一个,因为它的意思是让你选择默认的模板,这里我们自定义

这里是让我们选择的,使用空格勾选或者取消,我们只需要路由和Bable就可以

选3.x

sg是

是否使用路由的工作模式,这里输入Y

你的所有的包都在哪里?选择最后一个

是否把他当作一个模板,这里是 N

​​​​​

最后我们一起输入 从 cd XXX 到npm run serve 启动项目,它会给你一个地址,就是我们项目的地址

接下来我们要使用编程工具打开这个项目

首先我们需要知道

router的配置文件

使用Element-Plus

首先使用 Element-Plus,我们是需要安装一下的,就像我们引入外部的js文件一样,我们可以通过终端来安装

输入 cnpm install element-plus来安装,我们可以看到管理包的地方已经使用了

这里我们只是假设买了一盒烟,但是没有抽,哪我们买了有什么作用呢?所以我们需要使用一下(抽一下),顾名思义引入

我们在element-plus中引入一个按钮做一个测试

说明我们是引入成功的,接下来找一个element-plus的一个表格将我们的数据展示 ,这里我们只需要页面就可以了,不需要所有的东西都引入,因为它用的是setup语法糖

接下来我们先需要准备好我们对应的数据,这里我后端使用了分页插件

我们的表格是页面刚加载的时候就给我们展示出来的,所以我们先定义一个方法,里面是用来获取我们相对于的数据,而这里刚加载的时候,就需要展示的话,需要使用到vue的生命周期

这里我们先不做过多的讲解!!

我们使用的是mounted钩子函数,它是vue组件在没有渲染页面的时候执行的,但是数据和方法都是已经被加载出来的,现在我们只是将后端的数据存入到了emplist中

这里的话,我们其实可以查看我们element-plus这个表格的代码,让在script中定义了一些假数据,然后和data进行了绑定,我们的是后端过来的,也是可以绑定的, fixed是用来固定的,是我们表格的样式

prop是我们每一条数据的字段,label是可视化的,一个标签,而最后那个是我们的两个按钮,被固定到了右边

效果

接下来就是我们分页了,有表格的地方是绝对要有我们的分页的,接下来我们就要找到一个好看的分页了,这个是非常的齐全的,所以我们直接使用这个就可以,如果打开代码要复制粘贴的时候代码很多,该怎么能看的清楚呢? 我们可以看到上面有一个 All combined的标签,我们就可以找到这个标签,这个标签下面就是我们要复制的

首先我们需要知道这个表格和分页是分开的,我们先只看分页不用看表格,

第一个双向绑定,绑定了一个currentPage4 根据名字就可以知道是当前第几页,双向绑定的话我们是需要自定义这个currentPage4的,第二个是pageSize4 当前页有多少条数据,而 page-sizes这个参数的话,是我们页面的下拉框,用来选择 我想要当前有多少条数据, 这样看来它是与我们pageSize4是联动起来的,当我们选择下拉框之后,获取到想要当前有几条数据,然后赋值给pageSize4,因为我们后面的分页查询,就是需要我们两个参数, ==> 当前第几页,当前多少条数据, total是我们一共有多少条数据,size-chnage是用来监听选择想要当前有几条数据下拉框的,里面是需要有参数接收我们的数据,最后一个使用了接收当前是第几页

html 复制代码
<template>
	 <el-table :data="empList" style="width: 100%">
	    <el-table-column fixed prop="id" label="ID" width="150" />
	    <el-table-column prop="stuname" label="姓名" width="120" />
	    <el-table-column prop="sex" label="性别" width="120" />
	    <el-table-column prop="birthday" label="出生日期" width="120" />
	    <el-table-column prop="idcard" label="身份证号" width="600" />
	    <el-table-column fixed="right" label="Operations" width="120">
	      <template #default>
	        <el-button link type="primary" size="small" @click="handleClick">
	          编辑
	        </el-button>
	        <el-button link type="primary" size="small">删除</el-button>
	      </template>
	    </el-table-column>
	  </el-table>
	  <el-pagination
	       v-model:current-page="this.myPageData.currentPage4"
	       v-model:page-size="this.myPageData.pageSize4"
	       :page-sizes="[2, 4, 6, 8]"
	       :disabled="disabled"
	       :background="background"
	       layout="total, sizes, prev, pager, next, jumper"
	       :total="this.myPageData.total"
	       @size-change="handleSizeChange"
	       @current-change="handleCurrentChange"
	     />
</template>
<script>
	import myLimit from '@/components/my-limit.vue'
    import axios from 'axios'
	export default{
		 data() {
		 	return {
				myPageData:{
					currentPage4:1,//当前页数
					pageSize4: 2,//当前页要展示多少条数据
					total:0,
				},
		 		empList: [],		
		 	}
		 },
		 methods: {
			 handleSizeChange(val){
				this.myPageData.pageSize4=val;
				this.getEmp();
			 },
			 handleCurrentChange(val){
			 	this.myPageData.currentPage4=val
				this.getEmp();
			 },
			getEmp() {
				axios.get("http://localhost:8082/queryAll",{
					params:{
						currPage:this.myPageData.currentPage4,
						pageSize:this.myPageData.pageSize4
					}
				}).then(res=>{
					this.empList=res.data.list
					this.myPageData.total=res.data.total
				})
			}
		 },
		 mounted() {
		 	this.getEmp();
		 }
	}
</script>
<style>
	.demo-pagination-block + .demo-pagination-block {
	  margin-top: 10px;
	}
	.demo-pagination-block .demonstration {
	  margin-bottom: 16px;
	}
</style>

到此我们就讲解完了

相关推荐
To_OC2 小时前
别再串行写 await 了,Promise.all 才是并行请求的正确打开方式
前端·javascript·promise
To_OC2 小时前
LC 17 电话号码的字母组合:我的回溯算法,就是从这道题开窍的
javascript·算法·leetcode
vipbic2 小时前
中后台越做越乱后,我用插件化把它救回来了
前端·vue.js
Hyyy2 小时前
Computer Use 适合做什么,不适合做什么——一次真实使用后的思考
前端
小和尚同志3 小时前
前端 AI 单元测试思考与落地
前端·人工智能·aigc
invicinble4 小时前
c端系统,其实更像一个信息展示平台
前端
你怎么知道我是队长4 小时前
JavaScript的变量和数据类型介绍
开发语言·javascript·ecmascript
李姆斯5 小时前
管理是否可以被完全量化
前端·产品经理·团队管理
名字还没想好☜5 小时前
Next.js 中间件实战:鉴权、重定向与 A/B 分流
开发语言·前端·javascript·中间件·react·next.js
广州灵眸科技有限公司5 小时前
瑞芯微RV1126B开发板(EASY-EAI-PI2) INI文件操作
java·前端·javascript·网络·人工智能