目录
1.当 watch 监视 ref 所定义的基本数据类型
结论:不需要 使用 .value
原因:watch 函数监视的是一个属性,而 基本数据类型.value 是一个值
例如:let sum = ref(18) 要监视的时 sum 这个属性,而不是 18 这个值
打印 ref 返回的值得:
当使用 .value 会出现得警告,并实现不了监视
2.当 watch 监视 ref 所定义的引用数据类型
结论:需要 .value
原因:当 ref 定义一个引用数据类型时,会返回一个 refimpl 对象,这个对象没有默认得深度监视,当使用 .value 时才可以拿到 当前要监视的对象,.value拿到的对象是 Proxy 对象,里面默认是深度监视
注意:当不使用 .value 时,watch 可以监视到 refimpl对象中的任意一个属性的变化,但该 .value 是一个对象,当引用地址发生变化时才会监视到,默认监视不到 .value 对象中属性的变化。
解决方法:
1.使用 .value
2.在监视时不写 .value ,配置深度监视 deep: true