vue2.x版本中computed和watch的使用入门详解-computed篇

博客 分享
0 242
优雅殿下
优雅殿下 2022-03-23 09:57:11
悬赏:0 积分 收藏

vue2.x版本中computed和watch的使用入门详解-computed篇

前言

在基于vue框架的前端项目开发过程中,只要涉及到稍微复杂一点的业务,我们都会用到computed计算属性这个钩子函数,可以用于一些状态的结合处理和缓存的操作。

基础使用

在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因为不和其他状态关联,所以还是保持原来的值不变

getter VS setter

上面的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等。

关于vue和watch的区别,以及watch的使用详解,在个人的博客中持续更新中。以上例子的源码中已开源,后续关于vue的笔记也会继续更新

  • 码云 https://gitee.com/lewyon/vue-note
  • githup https://github.com/akari16/vue-note

文章个人博客地址:vue2.x版本中computed和watch的使用入门详解-computed篇

创作不易,转载请注明出处和作者。

posted @ 2022-03-23 09:28 程序猿布欧 阅读(0) 评论(0) 编辑 收藏 举报
回帖
    优雅殿下

    优雅殿下 (王者 段位)

    2018 积分 (2)粉丝 (47)源码

    小小码农,大大世界

     

    温馨提示

    亦奇源码

    最新会员