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 里面的内容会自动销毁的
00
相似问题