Vue中ref与reactive的区别

ref响应式变量

ref 函数传入一个值作为参数,返回基于该参数的响应式ref对象

ref 接受参数,并将其包裹在一个带有 value property 的对象中返回,然后可以使用该 property 访问或更改响应式变量的值

将值封装在一个对象 中,看似没有必要,但为了保持 JavaScript 中不同数据类型的行为统一,这是必须的。这是因为在 JavaScript 中,Number或 String等基本类型是通过值传递的,而不是通过引用传递的,在任何值周围都有一个封装对象,这样我们就可以在整个应用中安全地传递它,而不必担心在某个地方失去它的响应性。

javascript 复制代码
let { createApp, ref } = Vue;
        createApp({
            setup() {
                const count = ref(0); //声明
                const event = () => { //修改事件
                    count.value++;
                };
                return { count, event };
            }
        }).mount('#app')

reactive

javascript 复制代码
let { createApp, reactive } = Vue;
        createApp({
            setup() {
                const count = reactive({
                    a: 0
                }); //声明
                const event = () => { //修改事件
                    count.a++;
                };
                return { count, event };
            }
        }).mount('#app')

区别

ref主要用于基本类型的响应,比如String Number boolean,想要修改需要使用.value先获取value值进行修改

reactive主要用于声明引用类型,修改时对应修改即可

但是,在模板区域中使用的时候,ref因为Componsition API的封装,直接使用就行,不用加.value,但在setup函数中使用的时候必须加

注意!使用这两个的时候一定要先引入,再return出去

相关推荐
IT_陈寒12 小时前
React性能翻倍!90%开发者忽略的5个Hooks最佳实践
前端·人工智能·后端
亿元程序员12 小时前
光图片就300多M,微信小游戏给再大的分包也难啊!
前端
中工钱袋12 小时前
前端请求到底是从哪里发出去的?
前端
じòぴé南冸じょうげん15 小时前
若依框架favicon.ico缓存更新问题解决方案:本地生效但线上未更新
前端·javascript·前端框架·html
狮子座的男孩15 小时前
js基础高级:01、数据类型(typeof、instanceof、===的使用)、数据与变量与内存(定义、赋值与内存关系、引用变量赋值、js调函数传参)
前端·javascript·经验分享·数据类型·数据与变量与内存·赋值与内存关系·引用变量赋值
Cyclo-18 小时前
PDFJS 在React中的引入 使用组件打开文件流PDF
前端·react.js·pdf
椒盐螺丝钉20 小时前
Vue Router应用:组件跳转
前端·javascript·vue.js
顾安r20 小时前
11.20 开源APP
服务器·前端·javascript·python·css3
敲敲了个代码21 小时前
CSS 像素≠物理像素:0.5px 效果的核心密码是什么?
前端·javascript·css·学习·面试
少云清21 小时前
【软件测试】5_基础知识 _CSS
前端·css·tensorflow