您现在的位置是:首页 >学无止境 >Vue2-黑马(五)网站首页学无止境

Vue2-黑马(五)

dengfengling999 2023-05-16 00:00:02
简介Vue2-黑马(五)

目录:

(1)vue2-组件重用

(2)vue2-element ui安装

(3)vue2-ElementUI-table

(4)Element-ui-分页pagination


(1)vue2-组件重用

页面上有很多的html和js代码,具备一定的重用性,我们可以把这些代码集中起来,形成一个可重用的组件

可重用的组件放到这个里面:components

定义子组件: 

 在父组件使用子组件:

引入子组件,并多一个components属性

 并在模板中,使用,标签名字为引入的小写单词之间-

 在父组件中写入名字,子组件并不会使用

 如果想要子组件用到父组件提供的名字,需要使用slot插槽标签,起到占位作用:

子组件的样式时写死了,我们想要自己控制样式

需要在options里面加props是一个数组包含自定义属性的名字和类型 

 

 

(2)vue2-element ui安装

我们自己创建组件,比较麻烦,成本太高啦,我们采用组件库别人写好的组件 ,大大减少开发成本

 

 

 

下载后在package.json自动加上这个依赖 

 使用的话也需要引入:在入口js中引入:mian.js

我们自己去使用组件的时候,我们需要子在option对象里加这个组件,但是element ui的组件太多啦,一个一个去加太麻烦了我们使用Use方法把Element对象传给他,内部会把element-ui的所有组件都给他加进去,将来页面就可以使用element-ui的标签啦

 

 创建组件页面:在main.js中引入Example9View.vue

 element ui的按钮组件:

 

(3)vue2-ElementUI-table

 进入官方网站:选择版本:

选择使用的组件:

打开显示代码:进行复制

 复制到页面:

往下滑,列出了按钮可用的属性:

mounted方法作为对象的属性,可以简写省略 

 data方法也可以简写:

 使用表格组件el-table:

ea-table-column:列

prop:绑定遍历出来对象的属性

(4)Element-ui-分页pagination

 分页组件:el-pagination   

     属性total:总条数  

    page-size:每页记录数

    current-page:当前页

 

     layout:分页条外观,可以控制组件外观哪些显示哪些不显示 :prev:向上按钮, pager:页码部分,next:向下按钮,jumper:跳转的输入框,total:总页数,->:总条数向右对齐

sizes:每页显示几条记录

page-size=“【】”:自己设置每页显示条数的大小

 我们学到的上面的组件,发现有些属性需要加:,而有些不需要加,那么什么时候需要加和不需要加呢?

加了:就是v-bind简写,底层要执行数据绑定,数据绑定意味着等号后面这个值,来自JavaScript,需要来js中找属性名相同的值,没加冒号的,等号右面就是它最终的结果啦不会到js中找啦  

 分压中的加了:,在js中没有找到,会把=后面的当成表达式来解析

加:就是做数据绑定,不加:就是当成普通的值来处理

 后端使用对象接收:

 在前端也需要定义一个对象:

对象的属性跟分页插件的属性进行绑定:

分页组件中的变化不会双向绑定给js,我们以前学过v-model,但是它只适用于表单的标签

但是分页组件不能使用v-model,就需要使用分页的事件啦

 当当前页改变后,会触发currnentChange事件,我们能不能在currentChange函数里把页面的数据同步给javaScript

sizeChange事件:当每页条数改变后,可以把数据同步给js

然后进行同步:同步给js

 

这样事件加完啦,分页组件里,当前页改变和每页条数的改变同步给js,这样就完成双向绑定,

这样就可以发送请求给服务器啦,第一个情况是组件第一次加载的时候,需要向服务器要一次数据把第一页的数据获取回来,然后是在切换页面或(页码改变)的时候,又需要向服务器发送请求要新的数据 

这样我们可以写一个方法发送请求:

 发送get请求

 

发送请求成功,只是数据没有正常显示 ,需要修改前端的显示

请求发送成功 处理响应:

分页组件绑定真正的total

 

 

改变每页显示: 

 

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。