[vue3] ref&reactive

ref

可以定义:基本类型、对象类型的响应式数据

reactive

只能定义:对象类型的响应式数据

<template>
    <div class="person">
      <h2>Name: {{ name }}</h2>
      <h2>Age: {{ age }}</h2>
      <h2>Tel: {{ tel }}</h2>
      <button @click="changeName">changeName</button>
      <button @click="changeAge">age++</button>
      <button @click="showTel">tel</button>

      <h2>Car's price: {{ car.price }}</h2>
      <button @click="changePrice">price++</button>

      <h2>Country list: </h2>
      <ul>
        <li v-for="c in countries" :key="c.name">{{ c.name }}</li>
      </ul>
      <button @click="change1Country">change one country</button>
    </div>
</template>
  
<script lang="ts" setup name = "Person">
  import { ref, reactive } from 'vue'
  
  //data
  let name = ref('Jack')
  let age = ref(19)
  let tel = '123456'
    
  let car = reactive ({brand:'Volve', price:100})
  let countries = reactive([
    {name:'CN', continent:'Asia'},
    {name:'JP', continent:'Asia'},
    {name:'US', continent:'North America'}
  ])
  
  //function
  function changeName() {
    name.value = 'Tom'
  }
  
  function changeAge() {
    age.value += 1
  }
  
  function showTel() {
    alert(tel)
  }

  function changePrice() {
    car.price += 1
  }

  function change1Country() {
    countries[2].name = 'Canada'
  }


</script>
  
<style scoped>
  /* 可以添加样式 */
</style>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值