美文网首页
Vue3推荐使用ref而不是reactive

Vue3推荐使用ref而不是reactive

作者: MAYDAY77 | 来源:发表于2024-07-31 10:33 被阅读0次

    1、ref() 创建可以使用任何值类型的响应式 ref()   

    ref定义的数据(包括对象)时,返回的对象是一个包装过的简单值,而不是原始值的引用;

    就和对象深拷贝一样,是将对象属性值的赋值

    ref声明的响应式变量需要携带.value小尾巴,volar(Vue-official)插件能自动补全.value 

    2、reactive使用不当会失去响应

    reactive定义数据(必须是对象),reactive返回的对象是对原始对象的引用,而不是简单值的包装。

    类似对象的浅拷贝,是保存对象的栈地址,无论值怎么变还是指向原来的对象的堆地址;

    reactive就算赋值一个新的对象,reactive还是指向原来对象堆地址

    let state =reactive({count:0})

    //赋值

    // n 是一个局部变量,同 state.count 

    // 失去响应性连接

    let n = state.count  // 不影响原始的 state

    n++

    console.log(state.count) // 0

    直接结构失响应

    let state =reactive({count:0})  //普通解构count 和 state.count 失去了响应性连接

    let { count } = state

    count++ // state.count值依旧是0

    使用toRefs结构不会失去响应

    const state = reactive({count:0})//使用toRefs解构,后的属性为ref的响应式变量

    let { count } =toRefs(state)

    count.value++  // state.count值改变为1

    相关文章

      网友评论

          本文标题:Vue3推荐使用ref而不是reactive

          本文链接:https://www.haomeiwen.com/subject/aueghjtx.html