咨询电话:
15628812133
17
2024/03

Vue3使用响应式数据

发布时间:2024-03-17 21:43:25
发布者:·
浏览量:
0

    Vue2与vue3的不同之一setup(),setup可以说是vue3的灵魂所在,vue3把vue2的选项式api升级为了组合式api,能够有效增加大项目代码的代码可读性,但是和vue2自动把数据变为响应式不同,vue3多了一步配置。

Vue3使用响应式数据

Vue3使用响应式数据    

    请大家看一个例子,我在setup中创建了一个名为name的数据,他的值为张三,另外我还配置了一个方法,它的作用是修改name,并打印name的值

    Vue3使用响应式数据

    当我点击时,可以看到,张三并没有发生改变,但是console中打印出的name却是李四,说明数据已经改变了,但是页面却没有发生改变。这里没有发生改变的原因如下:

     因为name此时还不是响应式数据,如果是vue2中这里肯定已经实现了,但这里是vue3,且this没有了。大家可以看到我上边的代码中引入了一个叫做ref和reactive的东西,这两个其实就是让数据变为响应式的关键,官方对他们这样解释。

Vue3使用响应式数据

    Vue3使用响应式数据

     

    下面我们修改一下代码。

     Vue3使用响应式数据

    Vue3使用响应式数据

    可以看到,这次我们的name不单纯是一个字符串而是变成了一个对象,并且页面中张三已经被改成李四了,大家请注意看我的代码,因为ref让原本的张三变成了一个对象,所以当我们想要修改name的值的时候,一定要加上.value才能正常修改。

    然后,我们再说一下reactive(),其实他与ref相似,不同的地方在于,reactive只能用来让对象变成响应式,并且,因为其响应式化的本身就是对象,所以vue已经帮我们取到了其本身的值,这里我们不用写.value,但是如果用的是ref,还是需要.value。


    大体上说,ref可以用来定义基本类型数据,而reactive则用来定义对象类型数据,但在实际开发中,ref也可以定义对象类型数据,ref会自动调用reactive方法来实现对象类型数据的响应式。

Vue3使用响应式数据

    另外,接下来还会为大家带来vue3的用户代码片段,vue2的可以点一下这里。

关键词:
返回列表