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>

到此我们就讲解完了

相关推荐
Redstone Monstrosity1 分钟前
字节二面
前端·面试
东方翱翔8 分钟前
CSS的三种基本选择器
前端·css
Fan_web31 分钟前
JavaScript高级——闭包应用-自定义js模块
开发语言·前端·javascript·css·html
yanglamei196238 分钟前
基于GIKT深度知识追踪模型的习题推荐系统源代码+数据库+使用说明,后端采用flask,前端采用vue
前端·数据库·flask
千穹凌帝39 分钟前
SpinalHDL之结构(二)
开发语言·前端·fpga开发
冯宝宝^43 分钟前
基于mongodb+flask(Python)+vue的实验室器材管理系统
vue.js·python·flask
dot.Net安全矩阵1 小时前
.NET内网实战:通过命令行解密Web.config
前端·学习·安全·web安全·矩阵·.net
叫我:松哥1 小时前
基于Python flask的医院管理学院,医生能够增加/删除/修改/删除病人的数据信息,有可视化分析
javascript·后端·python·mysql·信息可视化·flask·bootstrap
Hellc0071 小时前
MacOS升级ruby版本
前端·macos·ruby
前端西瓜哥1 小时前
贝塞尔曲线算法:求贝塞尔曲线和直线的交点
前端·算法