一文读懂Vue3入门之ref reactive 函数

293 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第2天,点击查看活动详情

前言:

基于第一章我们在setup 中直接定义了变量以及一些方法,那么怎么去动态的的改变他们的值呢?也就是响应式的去改变他们的值!大家可以先记一下结论 ref 处理的是基本类型的数据 reactive 处理的是对象类型的数据

一.ref

先来看这几句代码
setup () {
    let name = 'zhangsan',
    let age = 19
    function fn() {
        name = 'lisi' //这里直接对之前定义的变量进行重新赋值
        age = 20
        }
       return {
           name,
           age,
           fn
           }


1.1 把这几行代码输出到页面你就会发现,数据没有改变,你在fn函数里面的重新赋的值更本就没有效果,那么这时候就用到 ref 这个玩意儿,使用ref包裹住你要改变的量 看下面的代码

setup () {
        let name = ref('zhangsan')
        let age = ref (19)
        function fn() {
            name.value = 'lisi'
            age.value = 20

1.2这就是vue3对基本数据的一种响应式展示的方式,使用了ref后,是不是有人疑问为啥要用.value的形式呢?不仿在控制台自己打印一下,因为他是个对象,而且里面检测数据改变的原理还是利用vue2里面的原理,这个对象里面有value属性,那么这个属性就是我们要改变的哪个值,所以使用ref对基本数据类型的数据进行加工以后,想要控制这个数据,那么必须得用 变量.value 的形式去操这个数据。

二:reactive 函数

2.1 先上结论 reactive 是对对象类型的数据进行加工处理的!底层是利用es6的proxy进行处理

setup () {
       let obj = reactive({
               name = 'zhangsan',
               age = 19,
               sex = 'nan'
               })
        function fn() {
            obj.age = 99,
            obj.sex = 'nv' // 因为是通过reactive()这个函数处理过的,所以这里直接可以这么对变量进行操作
        }
        2.这里也可以使用ref()加工的形式 对对象数据进行操作,不过别忘记.value 就可以了

三 总结

3.1 ref 和reactive 都是vue3里面数据响应式变化的处理函数

3.2 ref 是对基本类型的数据进行加工处理 使用时要 采用变量.value 的形式进行操作

3.3 reactive 是对对象类型的数据进行操作的,直接可以使用 obj.变量的形式进行操作

3.4 ref 底层原理是利用vue2的原理 reactive 是利用es6的proxy 的原理处理的(下一章讲proxy)