vue3.0 Composition API 上手初體驗 神奇的 setup 函數 (二) 響應對象數據的綁定

vue3.0 Composition API 上手初體驗 神奇的 setup 函數 (二) 響應對象數據的綁定

上文中,我們已經瞭解普通響應數據的綁定了。但是,那只是普通數據,我們在實際開發中,用到的對象數據是最多的。這一講,我們就來講講響應對象數據的綁定。

開幹。

編輯 src/views/About.vue 文件

編寫代碼如下:

<template>
  <router-link to="/">點這裏去首頁</router-link>
  <hr>
  <dl>
    <dt>{{state.name}}</dt>
    <dd>性別:{{state.sex}}</dd>
    <dd>地址:{{state.address}}</dd>
  </dl>
  <button @click="addressChange">更新地址</button>
</template>
<script>
// reactive 是 vue 3.0 的一個重大變化,其作用爲創建響應式的對象或數組
import { reactive } from 'vue'
// 導出依然是個對象,不過對象中只有一個 setup 函數
export default {
  setup () {
    // 定義一個 state 的響應式對象數據,並賦值
    const state = reactive({
      name: 'FungLeo',
      sex: 'boy',
      address: '上海'
    })
    console.log(state)
    // 定義一個函數,修改 state 的值。
    const addressChange = () => {
      state.address += '浦東'
    }
    // 導出一些內容給上面的模板區域使用
    return {
      state,
      addressChange
    }
  }
}
</script>

代碼差不多,我們來看下效果:

劃重點

在上一講中,我們使用的是 ref 來綁定響應的值,這裏,我們需要的是 reactive

reactiveref 的區別就是,reactive 是處理對象或者數組的。

我們在代碼中,使用了 reactive 來處理 state 這個對象。我們來打印一下,可以看到是如下圖的內容。

這裏面的重點是 Proxy 代理。這裏就要說到,vue 3.0vue 2.0 的一個重大區別了,就是採用了 ES2015Proxy 來代替 Object.defineProperty。結果是功能更強大,同時性能更優秀。更多的內容,可以自己找相關的資料來詳細瞭解。

好的,有關普通數據和對象數組數據的響應式綁定就說完了。但是看到這裏,各位看官要問,原來的各種生命週期鉤子哪裏去了?

彆着急,下一講,我們來說道說道。

本文由 FungLeo 原創,允許轉載,但轉載必須保留首發鏈接。


《vue3.0 Composition API 上手初體驗》 文章目錄地址: https://blog.csdn.net/fungleo/category_10020552.html 我會不定期的補充一些相關內容,歡迎關注訂閱!

文章代碼倉庫 https://github.com/fengcms/vue3-demo 會用 git 的朋友,可以去直接下載我的代碼。當然,給我點個 star 啥的,也不是不可以的哈!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章