当前位置:   article > 正文

vue3 ref与reactive的区别【基础篇】_vue3 ref和?区别

vue3 ref和?区别

一、什么是ref?

        1.ref和reactive-样也是用来实现响应式数据的方法由于reactive必须传递一个对象,所以导致在企业开发中如果我们只想让某个变量实现响应式的时候会非常麻烦所以Vue3就给我们提供了ref方法,实现对简单值的监听。

        2.ref本质:ref底层的本质其实还是reactive系统会自动根据我们给ref传入的值将它转换成
ref(xx) -> reactive({value:xx})。

        3.ref注意点:在Vue的html中使用ref的值不用通过value获取在JS中使用ref的值必须通过value获取。

二、在Vue的html中使用ref的值不用通过value获取

  1. <template>
  2. <h1>基本信息</h1>
  3. <h3>姓名:{{ name }}</h3>
  4. <h3>年龄:{{ age }}</h3>
  5. <h4>工作类型:{{job.type}}</h4>
  6. <button @click="sayHello()">点击</button>
  7. </template>
  8. <script>
  9. // ref的作用:定义一个响应式的数据
  10. import { ref } from "vue";
  11. export default {
  12. name: "App",
  13. setup() {
  14. // 数据
  15. let age = ref(18);
  16. let name = ref("张三");
  17. let job = ref({
  18. type: "前端开发工程师",
  19. salary: "30k",
  20. });
  21. //方法
  22. function sayHello() {
  23. // 修改
  24. name.value = "李四";
  25. age.value = "23";
  26. job.value.type = "UI设计师";
  27. }
  28. return {
  29. age,
  30. name,
  31. job,
  32. sayHello,
  33. };
  34. },
  35. };
  36. </script>

 三、ref和reactive区别:

区别一:

如果在template里使用的是ref类型的数据,那么Vue会自动帮我们添加.value 如果在template里使用的是reactive类型的数据,那么Vue不会自动帮我们添加.value。

区别二: ref函数只能够去监听简单类型的数据变化,不能够去监听,复杂类型的变化(数组、对象) reactive函数传递的参数必须是对象(json/arr)。

区别三 __v_isRef 是ref中拥有的属性 Vue底层就是根据这个来进判断是否需要在template添加.value的哈 reactive 是没有__v_isRef这个属性的,所以不会帮我们添加.value的。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/1021892
推荐阅读
相关标签
  

闽ICP备14008679号