vue 3 ref,vue3 ref用法

  vue 3 ref,vue3 ref用法

  我们知道ref可以用来创建响应式数据,toRef也可以创建响应式数据。本文主要介绍Vue3中ref和toRef区别的相关信息,有需要的可以参考一下。

  

1. ref是复制,视图会更新

  如果使用ref将对象中的某个属性值转换为响应数据

  我们对响应数据的修改不会影响原始数据;

  同时,视图将被更新。

  Ref是复制。复制不会影响原始数据。

  模板

  差异

  差异

  div{{stateObj}}/div

  Button @click=func1 按钮/按钮

  /div

  /div

  /模板

  脚本

  从“vue”导入{ref}

  导出默认值{

  名称:“应用程序”,

  setup(){

  Let obj={name:张三,年龄:22}

  //在对象中设置属性

  //成为响应数据

  //而不是将对象转换成响应数据

  让stateObj=ref(obj.name)

  函数func1(){

  StateObj.value=张三变李四;

  //原始数据没有改变。原始数据obj {姓名:张三,年龄:22}

  Console.log(原始数据对象,对象)

  //响应数据已更改。

  /**

  响应状态对象RefImpl{

  _rawValue:“张三变李四”,_ shall: false,

  __v_isRef: true,_value:张三变成李四

  }

  **/

  //成为ref的对象。

  console . log( responsive stateObj ,state obj)

  }

  返回{stateObj,func1}

  },

  }

  /脚本

  

2.toRef是引用,视图不跟新

  如果对象中的属性被toRef改变成响应数据

  如果我们修改响应数据,将会影响原始数据。

  如果数据是由toRef创建的,则在修改值后,数据不会触发视图。

  ToRef是一个引用;它引用上一个对象中的属性。

  所以你修改之后,会影响原始数据的最终值。

  模板

  差异

  差异

  div{{state}}/div

  Button @click=func1 按钮/按钮

  /div

  /div

  /模板

  脚本

  从“vue”导入{toRef}

  导出默认值{

  名称:“应用程序”,

  setup(){

  Let obj={name:张三,年龄:22}

  //将对象中的属性名更改为响应数据

  //而不是将对象转换成响应数据

  let state=toRef(obj, name );

  console.log(toRef ,state)

  函数func1(){

  State.value=我是李四;

  console.log(obj ,obj)

  console.log(state ,状态)

  }

  返回{state,func1}

  },

  }

  /脚本

  

3.结论

  复制修改响应数据,不影响之前的数据,界面会改变。

  参考引用,修改响应数据,会影响之前的数据,界面不会更新。

  toRef的使用场景

  如果您想将响应数据与原始数据相关联。

  并且在更新响应数据后不想更新视图;可以用toRef。

  

小结:

  ref和toRef的区别

  (1).ref本质上是副本,修改响应式数据不会影响原数据;toRef的本质是引用关系,修改响应式数据会影响原始数据。

  (2)如果2)。ref数据发生变化,界面会自动更新;当数据发生变化时,界面不会自动更新。

  (3).toRef涉及不同的refsToRef接收两个参数,第一个参数是哪个对象,第二个参数是对象的哪个属性。

  

总结

  关于Vue3中ref和toRef的区别这篇文章到此为止。更多关于Vue3 ref和toRef的区别,请搜索我们之前的文章或者继续浏览下面的相关文章。希望大家以后能多多支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: