响应式数据

选项式API的响应式数据

可用data选项来声明组件的响应式状态;该data选项的值应为返回一个对象的函数;

data函数返回对象的所有顶层属性都会被代理到组件实例(即方法和生命周期钩子中的this)上

比如:

<script>

   export default{

      //data选项的值应该是一个函数返回的对象

      data:()=>({

        account:'Abc',

        student:{

          name:'Jack',

          age:30

        }

      }),

      methods:{

        changeAccount(){

          //取出数据源可通过this(当前组件得实例对象) 关键字获取

          this.account+='='

        },

        changeStudentAge(){

          this.student.age++

        }

      }

   }

</script>

<!-- 视图 -->

<template>

  <h1>账号:{{account}}</h1>

  <button @click="changeAccount">点我更改账号</button>

  <hr>

  <h1>学生:{{student}}</h1>

  <button @click="changeStudentAge">点我更改学生年龄</button>

</template>

组合式API的响应式数据

如果在组合式API中直接声明普通变量的数据源,他们并不具备响应式数据

reactive()函数

reactive()函数只对对象类型有效(对象、数组、Map、Set),对string、number和boolean这样的原始类型无效

ref()函数

使用ref()方法我们可以创建任何类型的响应式数据,获取时需要通过.value来进行获取

当值为对象类型时,会用reactive()自动转化它的.value

<script setup>

  //引入reactive函数来声明响应式对象

  import { reactive, ref } from 'vue';

  //普通变量的数据源:字符串(不具备响应式)

  //  let account='Abc'

   let account=ref('Abc')

   //更改账号,控制台查看最新值

    // function changeAccount(){

    //   account+='='

    //   console.log(account)

    // }

    function changeAccount(){

      account.value+='='

      console.log(account)

    }

 //普通变量的数据源:对象(不具备响应式)

    // let emp={

    //   salary:7000,

    //   name:'Jack'

    // }

    //使用reactive函数来声明对象类型的数据源,具备响应式

    let emp=reactive(    {

      salary:7000,

      name:'Jack'

    })

   

   //更改员工薪资,控制台查看最新值

   function changeEmpSalary(){

    emp.salary+=100

      console.log(emp)

    }

</script>

<!-- 视图 -->

<template>

  <h1>账号:{{account}}</h1>

  <button @click="changeAccount">点我更改账号</button>

  <hr>

  <h1>员工:{{emp}}</h1>

  <button @click="changeEmpSalary">点我更改员工薪资</button>

</template>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值