vue3的ref的使用

1、响应式的数据ref函数:基本数据类型

使用ref情况下age,name直接输出都是一个RefImpl实现类,
其中基本类型的值直接放在这个实现类RefImpl的value里面,
取值需要age.value,age.value

注意:直接通过setup函数return出来的变量在末班解析的时候不需要
.value的形式取值,因为模板能自动解析出value值

2、响应式的数据ref函数:引用数据类型

    示例中obj.value打印的值: 
    Proxy {name: '刘德华', age: 19, job: '高级大数据工程师', salary: '60', data: {…}}
    深层次嵌套对象使用起来比较麻烦,尤其体现在取值方面
    

3、ref函数总结

    作用:定义一个响应式的数据
    语法:const xx = ref(initValue)
    创建一个包含响应式的数据的引用对象(reference对象,简称ref对象)
    js操作数据:xxx.value
    模板中读取数据:不需要.value 直接使用即可

    备注:
    接收数据可以是:基本数据类型、对象类型
    基本类型的数据:响应式依然是靠object.defineProperty()的get于set完成的
    对象类型:内部求助vue3.0中一个新函数reactive函数实现

示例

<template>
<!-- ref的基本数据类型使用 -->
  <p>{{name}}</p>
  <p>{{age}}</p>
  <button @click='changeAge'>点击年龄+1</button>

  <!-- ref的引用数据类型使用 -->
  <h1>{{obj.name}}</h1>
  <p>{{obj.job}}</p>
  <p>{{obj.salary}}k</p>
  <p>{{obj.age}}</p>
  <button @click="addSalary">点我涨薪资</button>
</template>
<script>
import {ref} from 'vue'
export default {
    name: 'App2',
    setup(){
        let name = ref('李敏镐');
        let age = ref(24);

        let obj = ref({
            name:"刘德华",
            age:19,
            job:'大数据工程师',
            salary:'30',
            data:{
                a:1,
                b:'胜多负少',
                c:'sdf'
            }
        })
        
        function changeAge(){
            age.value++;
            console.log(name.value,age.value,age)
        }
        /* 
      
        */
        function addSalary(){
            obj.value.salary = '60'
            obj.value.job = '高级大数据工程师'
            console.log(obj.value,obj.value.salary,obj.value.data.b)
        }

        return {
            age,
            name,
            obj,
            changeAge,
            addSalary
        }
    }
};
</script>

<style scoped>

</style>
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

追逐梦想之路_随笔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值