首页 > 其他分享 >vue中工作总结

vue中工作总结

时间:2022-10-22 14:00:35浏览次数:45  
标签:总结 vue aaa 方法 watch 工作 oldVal 拷贝 data

1.vue中数据向下传递时,无法使用@close方法清除

原因:传递的时候需要进行一波深拷贝

方法:JSON.parse(JSON.stringify(obj))

2.表格选择的时候无法再次点击取消

使用elementui的时候有选中按钮@row-click="aaa"接下来复写aaa方法

aaa(row){
this.selectRadio = row.id == this.selectRadio?false:row.id
this.selectObj = this.selectRadio?row''
}

3.监听工作使用方法

// watch能监听
var vue = new Vue({
data:{
a:1,
b:[],
c:{
d:2,
e:"3"
},
firstName: ''
},
methods:{
clickMethod(){
this.c.f=4 // 通过点方法给对象添加属性,这时候watch监听不到变化
this.$set(this.c,"f",4) // 通过$set方法添加属性,watch能监听到变化
}
},
watch:{
// 当a的值发生改变时触发
a:function(val,oldVal){
console.log('new:%s,old:%s',val,oldVal)
},
// 数组长度发生变化时触发
b:function(val,oldVal){
console.log('new:%s,old:%s',val,oldVal)
},
// 对象中的属性值发生变化时触发
c:{
handler: function (val, oldVal) {
console.log('new:%s,old:%s',val,oldVal)
},
deep: true // 深度监听,监听到更深层级值的变化
},
// 深度监听对性能影响较大,修改c里面任何一个属性都会触发这个监听器里的 handle。可以做如下处理:
‘c.d': {
handler(newName, oldName) {
console.log('obj.a changed');
},
immediate: true,
// deep: true
},
// 上面的例子是值变化时候,watch才执行,我们想让值最初时候watch就执行就用到了handler和immediate属性
firstName: {
handler(newName, oldName) {
this.fullName = newName + ' ' + this.lastName;
},
// 代表在wacth里声明了firstName这个方法之后立即先去执行handler方法,如果设置了false,那么效果和上边例子一样
immediate: true
}
}
})

4.父传子

//父页面中引用的子组件
<Son :msg="aaa" :user="bbb"></Son>//aaa和bbb是数据或数组,可传多个
//子组件页面接受
props:['msg','user']//data之外
//子页面引用
<p>{{msg}}<p>
<p>{{user}}<p>
//父组件中引入子组件,并且加入ref方式
<Son :ref="aaa"></Son>
//方法中传值进去
this.$refs.Son.name="ccc"
//子组件中要有name这个字段

5.子传父

//子方法里面写入
this.$emit('add',this.selectObj)
//父组件里面写入
<Son @add='addData'></Son>//add对应方法起的名字
//父方法里面获取并使用方法
addData(data){
this.name=data.name
}

6.使用Axios调用接口

//首先引入
import myAxios form 'Axios的地址'
//方法
export const aaa = (data) =>{//aaa是这个方法起的名称data是传入的值
return myAxios ({
url:接口的地址,
method:'post',//这里是看你的方法是post还是get
data,//get就使用params:data
})
}

7.深拷贝数据方法(这里用在查询按钮中)

//查询方法
searcInfo(){
let data = this.form
data['id'] = this.id
data['name'] = this.name
aaa.bbb(data).then((res)=>{//aaa和bbb分别是引入的js文件和js文件中的方法名
this.tableData = []
this.tableData = res.data.list
})
}
//深拷贝处理
submitForm(){//点击查看的时候触用的方法
this.pageNum = 1
this.pageSize = 10
this.form = deepCopyObject(this.form)//deepCopyObject是封装引用的方法
this.searcInfo()//换更新个form数据来调用
}

//deepCopyObject的方法
export function deepCopyObject(obj){
var res = JSON.parse(JSON.stringify(obj))
return res
}
注:深拷贝是拷贝了一个堆粒子数据,不会受其他的影响。浅拷贝的话数据会受其影响浅拷贝,
只拷贝了数据对象的一层数据,拷贝后的数据与原始数据还是有关联数组的concat、slice,对象的assign拷贝





标签:总结,vue,aaa,方法,watch,工作,oldVal,拷贝,data
From: https://blog.51cto.com/u_15449946/5783866

相关文章

  • Vue 笔记6 模板分离
                   ......
  • 最短路个人总结
    最短路(一)DijkstraDijkstra算法可求任一点到定点的最短路,适于有向图和无向图(对有向图有用的就一定对无向图有用),其边权不可为负(一条边都不行)。数组vis标记访问过的点,数组di......
  • Vue3 系统入门与项目实战2022克鲁斯卡尔算法
    ​Vue3系统入门与项目实战2022克鲁斯卡尔算法计算机的记忆金字塔1.局部性原则局部性原则是制定存储系统数据管理策略的理论基础。我们可以从两个维度来理解它:1.时间局......
  • vue3中$attrs的变化与inheritAttrs的使用
    在vue3中的$attrs的变化$listeners已被删除合并到$attrs中。$attrs现在包括class和style属性。也就是说在vue3中$listeners不存在了。vue2中$listeners是单独存在的。......
  • 2022-2023-1 20221401 《计算机基础与程序设计》第八周学习总结
    2022-2023-120221401《计算机基础与程序设计》第八周学习总结作业信息班级链接https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP作业要求https://www......
  • vue.js中实现阻止事件冒泡
    当父子元素中都有点击事件的时候,为了让触发子元素中的事件时,不去触发父元素中的事件,可以在子元素事件中添加stop来阻止事件冒泡。 .stop是阻止冒泡行为,不让当前元素的......
  • 力扣1235(java)-规划兼职工作(困难)
    题目:你打算利用空闲时间来做兼职工作赚些零花钱。这里有 n 份兼职工作,每份工作预计从 startTime[i] 开始到 endTime[i] 结束,报酬为 profit[i]。给你一份兼职工作......
  • 2022-2023-1 20221415 《计算机基础与程序设计》第八周学习总结
    2022-2023-120221415《计算机基础与程序设计》第六周学习总结作业信息这个作业属于哪个课程<班级的链接>(2022-2023-1-计算机基础与程序设计)这个作业要求在哪......
  • 2022-2023-1 20221305 《计算机基础与程序设计》第8周学习总结
    2022-2023-120221305《计算机基础与程序设计》第X周学习总结作业信息这个作业属于哪个课程<班级的链接>(如2022-2023-1-计算机基础与程序设计)这个作业要求在哪......
  • Vue 前端配置跨域
    目录Vue前端配置跨域添加vue.config.js文件修改main.js好文推荐Vue前端配置跨域Nginx、后端网关层已经全部配置跨域,VUE前端仍然会偶发性发生跨域问题,故此决定,前端也进......