今天小编给大家分享一下vue2.x版computed和watch怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
在computed中,声明一个函数,并需要提供一个返回值,用于在页面展示或者结合其他方法进行处理
结合state状态使用
通过changeName返回一段依赖于name的字符串
<li>computed基本使用</li>
<li>name值:{{ name }}</li>
<li>{{ changeName }}</li>
data() {
return {
name: "zhangsan",
};
},
computed: {
changeName: function () {
return `一段依赖于name:${this.name}的文字`;
},
},
主动触发computed方法,对比不依赖于其他状态下的区别,通过点击事件,主动触发一些操作
<li>{{ isCache }}</li>
<li>{{ cacheTip }}</li>
<li>{{ changeCache }}</li>
<li><button @click="handleChange">修改文字</button></li>
data() {
return {
cacheTip: "cacheTip原始值",
};
},
computed: {
isCache: function () {
return `不依赖于任何属性值的一段文字`;
},
changeCache: function () {
return `依赖于cacheTip,${this.cacheTip}`;
},
},
methods: {
handleChange() {
this.cacheTip = "cacheTip状态被修改";
},
},
当我们点击修改状态时,可以看到,cacheTip被修改只会,依赖于cacheTip的changeCache也会发生改变
isCache因为不和其他状态关联,所以还是保持原来的值不变
上面的cacheTip,或者isCache,在computed的通用方法中,默认都是使用了getter方法去获取处理过的值
可以写成:
isCache: {
setter:function () {
return `不依赖于任何属性值的一段文字`;
}
}
通过getter和setter,可以进一步对需要处理的状态进行处理
<li>{{ firstName }}</li>
<li>{{ lastName }}</li>
<li>{{ setterGetter }}</li>
<li><button @click="handleChangeFirst">修改文字</button></li>
data() {
return {
firstName: "lewyon001",
lastName: "布欧001",
};
},
computed: {
setterGetter: {
// getter
get: function (newValue) {
console.log("newValue", newValue);
return this.firstName + " " + this.lastName;
},
// setter
set: function (newValue) {
console.log("newValue", newValue);
this.firstName = `${newValue.firstName}`;
this.lastName = `${newValue.lastName}`;
},
},
}
methods: {
handleChangeFirst() {
this.setterGetter = { firstName: "lewyon", lastName: "布欧" };
},
},
get属性可以获取最原始的依赖值并处理,
set方法,可以获取修改后的依赖值,在修改之后一并展示到页面上或者进行其他业务需要的处理
computed方法的基础,包括进阶的操作,以及setter和getter方法如上
使用建议:
作为经常使用的方法:
computed可以作为依赖于其他状态的缓存进行使用,包括一些不经常更新的内容,减少开销
简单的字符串模板结合其他状态
还有其他的场景在开发中,我们都可以进行使用,结合watch等。
以上就是“vue2.x版computed和watch怎么使用”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。