欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue3+TS reactive設定類型方式

 更新時間:2024年04月28日 09:12:36   作者:小智學前端  
這篇文章主要介紹了vue3+TS reactive設定類型方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

vue3+TS reactive設定類型

定義兩個接口,第一個接口限制對象屬性,第二個接口寫Data屬性

interface User {
  username: string | null;
  age: number | null;
  sex: string | null;
}

interface Userdata {
  data: [User];
}

const userList = reactive<Userdata>({
  data: [
    {
      username: null,
      age: null,
      sex: null,
    },
  ],
});

vue中的Reactive,ref,readonly

一、Reactive api

下面我們可以一個例子

如圖所示,當我們點擊button按鈕的時候,是沒有響應式效果的,此時我們需要reactive api。

那么這是什么原因呢?為什么就可以變成響應式的呢:

因為當我們使用reactive函數(shù)處理我們的數(shù)據(jù)之后,數(shù)據(jù)再次被使用時就會進行依賴收集,當數(shù)據(jù)發(fā)生改變時,所有收集到的依賴都是進行對應的響應式操作,我們編寫的data選項,也是在內部交給了reactive函數(shù)將其編程響應式對象的。

二、Ref api

reactive api對傳入的類型是有限制的,要求我們必須傳入一個對象或者數(shù)組,但是如果我們傳入基本數(shù)據(jù)類型的話,會報一個警告(String, Number, Boolean)。

template模板中,vue會自動幫助我們解包,所以我們不需要使用ref.value進行操作。

但是在setup內部,vue不會幫助我們進行解包操作,此時我們需要使用ref.value 

ref的解包只是淺層解包

如上述兩張圖所示,第一張圖,在ref對象外層嵌套了一層普通對象,此時在template中就必須加上value才可以訪問。

在下面使用reactive對象進行嵌套,此時不需要加value也可以訪問。 

三、readonly api

我們通過reativeref獲取的響應式對象,但是在某一些情況下,我們希望這樣數(shù)據(jù)可以傳給其他組件,此時這些數(shù)據(jù)不能被修改,所以我們使用readonly函數(shù)。

readonly函數(shù)傳入對象后,返回結果為代理對象(proxy對象,該對象的set方法被劫持,不能進行修改)。

readonly常見的傳入對象 

  • 類型一:普通對象
  • 類型二:reactive返回的對象
  • 類型三:ref返回的對象

readonly返回的對象不允許修改,但是在readonly處理的原來的對象是允許被修改的。

readonly對象的本質是:readonly對象的返回結果的setter被劫持。

上面的并沒有修改readonly屬性的對象,所以可以在home組件中修改。

如上圖所示使用readonly屬性的就不可以進行更改。

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。 

相關文章

  • Vue.js每天必學之構造器與生命周期

    Vue.js每天必學之構造器與生命周期

    Vue.js每天必學之構造器與生命周期,告訴大家什么是Vue.js構造器與生命周期,感興趣的小伙伴們可以參考一下
    2016-09-09
  • webpack dev-server代理websocket問題

    webpack dev-server代理websocket問題

    這篇文章主要介紹了webpack dev-server代理websocket問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Vue混淆與還原的實現(xiàn)

    Vue混淆與還原的實現(xiàn)

    混淆是一種有效的保護措施,可以加密和壓縮代碼,使其難以被理解和修改,本文將介紹Vue混淆的概念以及如何進行還原,感興趣的可以了解一下
    2023-12-12
  • vue中虛擬DOM與Diff算法知識精講

    vue中虛擬DOM與Diff算法知識精講

    這篇文章主要為大家介紹了vue中虛擬DOM與Diff算法知識的圖文精講,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-04-04
  • vue-video-player 解決微信自動全屏播放問題(橫豎屏導致樣式錯亂問題)

    vue-video-player 解決微信自動全屏播放問題(橫豎屏導致樣式錯亂問題)

    這篇文章主要介紹了vue-video-player 解決微信自動全屏播放問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-02-02
  • Vue.js實現(xiàn)大轉盤抽獎總結及實現(xiàn)思路

    Vue.js實現(xiàn)大轉盤抽獎總結及實現(xiàn)思路

    這篇文章主要介紹了 Vue.js實現(xiàn)大轉盤抽獎總結及實現(xiàn)思路,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-10-10
  • VUE中使用TypeScript裝飾器實現(xiàn)表單驗證的全過程

    VUE中使用TypeScript裝飾器實現(xiàn)表單驗證的全過程

    這篇文章主要給大家介紹了關于如何在VUE中使用TypeScript裝飾器實現(xiàn)表單驗證的相關資料,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2022-03-03
  • vue多頁面開發(fā)和打包正確處理方法

    vue多頁面開發(fā)和打包正確處理方法

    這篇文章主要介紹了vue多頁面開發(fā)和打包的正確處理方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2018-04-04
  • Vue router動態(tài)路由實現(xiàn)過程

    Vue router動態(tài)路由實現(xiàn)過程

    Vue動態(tài)路由(約定路由),聽起來好像很玄乎的樣子,但是你要是理解了實現(xiàn)思路,你會發(fā)現(xiàn)沒有想象中的那么難,下面這篇文章主要給大家介紹了關于vue實現(xiàn)動態(tài)路由添加功能的簡單方法,需要的朋友可以參考下
    2023-03-03
  • django中使用vue.js的要點總結

    django中使用vue.js的要點總結

    在本篇文章里小編給各位整理了關于django中使用vue.js需要注意的地方以及相關知識點,需要的朋友們跟著學習參考下。
    2019-07-07

最新評論