Vue3 入门(ref)

Vue3 入门(ref)

let name = ref('jack')
  • 首先我们得明白,ref函数返回的是一个RefImpl对象的实例,所以此时name的值是一个复杂数据类型Object,它里面有个value属性,就是它的值,而其它的属性皆是下划线开头的,我们不关注,因为这类属性一般不是给我们开发用的
  • Vue3中,想要实现响应式,就得借助refreactive,这是人家底层实现响应式之后给你抛出的的一套语法
  • RefImpl的全称是Reference Implement,即引用实现。
  • Ref也能实现对象的响应式,因为当它碰到对象时,会用Proxy去代理,xxx.value.xxx就能拿到这个Proxy
  • RefImpl中,基本数据类型是用Object.defineProperty实现的,对象类型是用Proxy实现的
  • Vue2中,直接通过数组下标赋值是不行的,但在Vue3中可以,因为它用的是Proxy代理

js代码中,若想实现那种响应式的值的改变,那么就得去改变该对象里面value的值,不能直接给name赋一个其它值,因为Vue3中的响应式得借助RefImpl对象来实现

template模板中是不需要.value的,因为Vue3在解析模板的时候,当发现它是RefImpl对象时,会自动去取它的value属性并展示出来

posted @ 2023-04-21 08:26  朱在春  阅读(108)  评论(0编辑  收藏  举报