❶ vue2中的过滤器
vue的过滤器只用用在 双花括号{{}} 和 v-bind 中,使用时采用|符号来实现
在main.js中全局定义过滤器方法,即可在项目中直接使用
直接在文件中使用filters,在其中定义要使用的过滤器
多个过滤器可串联使用,前一个过滤的返回值作为后一个过滤器的入参
过滤器像函数一样,可以接受参数
❷ vue项目中常用到哦,不看看吗
现在没用过vue框架,都不好意思说自己是干前端呢,当然这句话并不是说干前端非得会vue,只是想说明他的火爆程度,现在连小程序都推出了mpvue,你确定你还不赶紧了解了解vue吗,我这篇文章的内容都是些很基础的vue知识,后续会补上
解析 :
- beforecreate :可以在这加个loading事件
- created :在这结束loading,还做一些初始化,实现函数自执行
- mounted : 在这发起后端请求,拿回数据,配合路由钩子做一些事情
- * beforeDestory * : 你确认删除XX吗? destoryed :当前组件已被删除,清空相关内容
其中key为对象里面的键,value为对象里面的值,其本意就是动态改变原来已经固定的值值,就需要使用vue.set(‘想要改变的对象’,’要渲染的键‘,’要渲染的值‘)
解析
遍历后{{parent.name}}的已经固定了,这时候点击编辑按钮,改变里面的值,虽然后台数据已经发生了改变,但那时页面渲染的效果并不会发生改变,这时候要想改变页面上的值,就需要使用vue.set(‘想要改变的对象’,’要渲染的键‘,’要渲染的值‘),
在空的数组中不能使用push传入数据,所以应当使用vm.$set给数组添加
** 使用v-bind动态给元素绑定
这样可以在遍历的时候给不同的元素动态绑定不同id
在下次dom更新循结束之后延迟回调,在修改数据之后立即使用这个方法,获取更新后的dom
在vue中获取当前点击的元素对象,在点击的方法里 传 入$event,然后在methods方法里面接受传过来的值,具体如 下
这个指令保持在元素上直到关联实例结束编译 /,可隐藏为编译的标签直到实例准备完毕
computer也是一个对象,类似于methods,在里面也可以定义很多方法。计算属性的结果会被缓存,写法如下:
前一兄弟元素必须有v-if 或v-else-if
前一兄弟必须有v-if或v-else-if
vue包含一组观察数组的变异方法,所以它们也会出发视图更新
由于javascript的限制,Vue不能检测一下变动的数组
对于已经创建实例,vue不能动态添加根级别的响应式属性,但是可以使用Vue.set( object, key, value )方法嵌套对象添加响应式属性
props可以是数组或对象,用于接收来父组件的数据,或者使用对象作为替代
1.axios.post('url', {data} )
.axios发送跨域请求
var headers ={
'headers':{
'Content-Type':' application/x-www-from-urlencoded'
}
}
axios.$http.post('url', {data},设置请求头)
axios发送post请求时传过去的数据格式不是formate格式。从而获取不到后台传过来的数据
解决办法:在页面中引入qs模块
import qs from'qs';
axios.interceptors.request.use((config)=>){
config.date=qs.stringify(config.data);
returnconfig;
}
私有过滤器是将过滤器中的方法直接绑定到当前Vue实例上面,所以只能在当前托管区域中使用
全局过滤器相当于是将过滤器中的方法绑定到Vue构造函数的原型中,可以保证每一个Vue实例的托管区域都可以使用
vm在很多时候,页面还未加载出来,不能使用vm,这时我们有两种解决方法
访问在线试听
如果项目数据过多的话,直接管理是非常不方便的,这时候就应该采用vuex,Vuex是一个专门为Vue.js应用程序开发的状态管理模式,它采用集中式存储管理应用所有的组件的状态
mui中的区域滚动组件,有个默认阻止冒泡事件,这时候在vue中使用click事件就会无法触发,具体做法是把click事件改为tap事件,只有区域滚动事件click事件才无法生效
vue中的get传参
axios.get(url,{params:{'aa':hello,'bb':''}})
我把图片的id都放入数组,让然后传给你,你再传给我过滤后的图片信息,然后你让我通过自己创建的数组里面的id来对你传过来的图片信息进行处理,可是我自己创建的数组会随着不同按钮而发生改变,
const arr1=[12,23,45,12,45];
const arr2=[12:'你好',23:'是吗',45:'算了']
for(let i arr1){
vm.$set(arr2,i,arr2[arr2[i]]);
}
这样得到的arr2 =[12:'你好',23:'是吗',45:'算了',12:'你好',45:'算了']
var a=[1,2,3,4,5,6,];
var b=a.filter((value,index)=>{
value:当前数组对应的值
index:当前值对应的索引
returnindex!=2;
})
在vue中
import Vue from ‘vue’ //es6写法
import App from ‘./App’
父子组件的通信:emit
非父子组件之间的通信:event bus
复杂情况:vuex
❸ 关于vue中的过滤器使用--结合element-ui的table项
参考文档: https://blog.csdn.net/tg928600774/article/details/81945140?utm_source=blogxgwz1
https://blog.csdn.net/qq_41649755/article/details/106331555?utm_medium=distribute.pc_relevant.none-task-blog--1.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog--1.channel_param
项目需求:
从接口中获取数据,渲染显示在表格中,且数据精度保留两位小数。
在element-ui中表格的显示中,插槽的具体使用。
table按照tableData这个数组的长度来生成多少行,按照有多少个el-table-column来生成多少列。
<template slot-scope="scope">
在<el-table-column>中使用自定义模板,实现对渲染数据的改变。
template中自定义列模板,自定义列的显示内容,可组合其他组件使用。
利用scope.row获取该行中dataYoyYear所对应的列值数据,进而进行修改。
拿到数据之后,就要结合vue的过滤器对数据进行修改精度。
mention!此时的filters方法,而不是filter。important:该方法与methods并列,否则报错!