watch的两个问题

来源:10-6 完成删除文章功能

慕莱坞0998854

2021-05-21

老师你好,我有两个关于watch的小问题希望老师能解答一下:
1> 文档中说:“侦听器数据源可以是具有返回值的 getter 函数,也可以是 ref”,
但是假如说是ref的话,好像不能写成"具有返回值的getter函数"?

  const count = ref(0)
  // 下面的写法好像是不行的?
  watch( () => count, (count, prevCount) => {
    /* ... */
  })

2> watch函数会造成内存泄漏吗?watch的数据会一直存在吗?
老师,由于我对前端工程化的理解还不够(不明白现在的组件和纯js之间的关系),比如一个组件销毁了,但是我们在组件的setup里面使用了watch这个函数,那么这个数据会一直存在吗?这个watch函数会一直存在吗?
我现在对闭包的理解仅限于(也不知道对不对):

	// foo函数执行之后,里面的bar本来应该被回收,但是返回的箭头函数保留了bar的引用,那么bar将被保存下来
	function foo(){
		let bar = "bar"
		return (val) => {
			bar = val
		}
	}
写回答

1回答

张轩

2021-05-21

同学你好 

第一个问题 ref 不用写 getter,直接传入 ref 就好了

第二个问题 组件销毁后 setup 中的变量包括watch 里面的内容会自动销毁的

0
0

Vue3 + TS 仿知乎专栏企业级项目

带你完成前后端分离复杂项目,率先掌握 vue3 造轮子技能

3142 学习 · 2313 问题

查看课程