溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

typescript裝飾器怎么在vue項目中使用

發(fā)布時間:2021-03-24 17:23:20 來源:億速云 閱讀:130 作者:Leah 欄目:web開發(fā)

typescript裝飾器怎么在vue項目中使用?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

1,data 值的聲明

typescript裝飾器怎么在vue項目中使用 

在這里 public 聲明的是公有屬性, private 聲明的是私有屬性,私有屬性要帶 下劃線

藍色框里的內容是聲明組件,在每個組件創(chuàng)建時都要帶上, Components 中的寫法如下

typescript裝飾器怎么在vue項目中使用 

上面是 普通寫法 ,下面是 懶加載寫法

2.@Prop 父組件傳值給子組件

typescript裝飾器怎么在vue項目中使用 

父組件使用 v-bind 傳遞與js版本一樣,在父組件接受是使用修飾器

@Prop({type:‘類型'})

readonly:傳遞的參數名稱!:類型

一定要寫全,不然后報錯,也可以寫個 接口 約束 類型

3.@Emit  子組件給父組件傳值

typescript裝飾器怎么在vue項目中使用 

@Emit('傳給父組件的值')

callback

父組件接收與 js 版本一致

4.@Provide @Inject  混入

typescript裝飾器怎么在vue項目中使用 

這個沒什么說的, @Provide 聲明一個值 , 在其他地方用 @Inject 接收

5.@Model 雙向綁定

typescript裝飾器怎么在vue項目中使用 

這個也很簡單,v-model綁定一個值,在子組件使用 @Model('頁面展示的值') 值類型

這里我偷懶,聲明一樣的 (手動笑哭)

5.@Watch   監(jiān)聽函數

typescript裝飾器怎么在vue項目中使用 

@Watch('監(jiān)聽的值',{深度監(jiān)聽})

callback 回調函數

6.鉤子函數的聲明

與js基本一致

Ts          -> Js
public create() {} -> create() {}
public mounted() {}  ->  mounted() {}
eg:
private _changeMsg() {} ->  methods: {
_changeMsg() {}
}
eg:
private get _changeValue() {} -> computed: {
_changeValue() {}
}
public destory() {}      -> destory() {}

7.@State vuex中state的值

typescript裝飾器怎么在vue項目中使用 

@State(state => state數據里的參數) 頁面展示的值

?。。。。。?注意vuex的數據都要在鉤子函數里 調用 ?。。。。。。。。。。。。?!

8.@Mutation  vuex中的mutation

typescript裝飾器怎么在vue項目中使用 

使用與 @State 一致

?。。。。。。。。。。。。⌒枰⒁獾氖且獙懸粋€接口 將state里面的數據類型寫進去,如果直接用

state編輯器會報錯 , 當然聲明any類型也是可以的, 但是用了Ts還是盡量不要用any吧  

    ?。。。。。。。。。。。。。。。。。。?!

9.@Action vuex 中的action

typescript裝飾器怎么在vue項目中使用 

@Action('action里的方法名') 頁面展示的方法

!?。。。。。?!  由于異步,需要加async await 不然會一直處在padding狀態(tài),

 使用promise也是可以的            ?。。。。。。。。。。。。。?!

至于 vue.config.js 網上很多方法,有興趣的可以去找下,在這里貼下自己的

typescript裝飾器怎么在vue項目中使用 typescript裝飾器怎么在vue項目中使用

     typescript裝飾器怎么在vue項目中使用

關于typescript裝飾器怎么在vue項目中使用問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業(yè)資訊頻道了解更多相關知識。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI