Vue3教程 3.响应式ref函数

4 篇文章 0 订阅

我们使用Vue3的setup,触发数据改变,但是数据不会及时更新到页面上,代码如下;

  <h2>{{ title }}</h2>
  <h2>{{ num }}</h2>
  <ul>
    <li v-for="(category, index) in categorys" :key="index">
        {{ category }}
    </li>
  </ul>
  <button @click="hello">hello</button>
export default {
  name: 'App',
  setup(){
    let title = '商品分类';
    let num = 30;
    let categorys = ['女装', '男装', '家电'];
    return {
      title,
      num,
      categorys,
      hello () {
        num += 1;
        categorys.push('数码');
      }
    }
  }
}

在Vue2定义的数据默认响应式,更改过数据后页面自动更新。但在Vue3的setup做响应式需要额外用上ref,代码如下:

import {ref} from 'vue';

export default {
  name: 'App',
  setup(){
    let title = ref('商品分类');
    let num = ref(30);
    let categorys = ref(['女装', '男装', '家电']);
    return {
      title,
      num,
      categorys,
      hello () {
        num.value += 1;
        categorys.value.push('数码');
      }
    }
  }
}

被ref包裹之后会返回RefImpl对象,使用时必须用.value

// 复杂对象包裹
let prodcut = ref({
    title: '电视机',
    sku: [{
        count: 2,
        title: '红色'
    }]
});
// 修改数据
let hello = () => {
	prodcut.value.sku[0].title = '蓝色';
}

return {
    prodcut,
    hello
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

terrybg

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

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

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

打赏作者

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

抵扣说明:

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

余额充值