vue中typescript裝飾器的使用方法超實(shí)用教程
VueConf ,尤大說(shuō), Vue 支持 Ts 了,網(wǎng)上關(guān)于 Vue + Ts 的資料有點(diǎn)少, 樓主踩了一個(gè)星期坑,終于摸明白了 修飾器 的玩法,下面我們就來(lái)玩下 Vue 的 decorator 吧
1,data 值的聲明
在這里 public 聲明的是公有屬性, private 聲明的是私有屬性,私有屬性要帶 下劃線
藍(lán)色框里的內(nèi)容是聲明組件,在每個(gè)組件創(chuàng)建時(shí)都要帶上, Components 中的寫(xiě)法如下
上面是 普通寫(xiě)法 ,下面是 懶加載寫(xiě)法
2.@Prop 父組件傳值給子組件
父組件使用 v-bind 傳遞與js版本一樣,在父組件接受是使用修飾器
@Prop({type:‘類(lèi)型'})
readonly:傳遞的參數(shù)名稱!:類(lèi)型
一定要寫(xiě)全,不然后報(bào)錯(cuò),也可以寫(xiě)個(gè) 接口 約束 類(lèi)型
3.@Emit 子組件給父組件傳值
@Emit('傳給父組件的值')
callback
父組件接收與 js 版本一致
4.@Provide @Inject 混入
這個(gè)沒(méi)什么說(shuō)的, @Provide 聲明一個(gè)值 , 在其他地方用 @Inject 接收
5.@Model 雙向綁定
這個(gè)也很簡(jiǎn)單,v-model綁定一個(gè)值,在子組件使用 @Model('頁(yè)面展示的值') 值類(lèi)型
這里我偷懶,聲明一樣的 (手動(dòng)笑哭)
5.@Watch 監(jiān)聽(tīng)函數(shù)
@Watch('監(jiān)聽(tīng)的值',{深度監(jiān)聽(tīng)})
callback 回調(diào)函數(shù)
6.鉤子函數(shù)的聲明
與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的值
@State(state => state數(shù)據(jù)里的參數(shù)) 頁(yè)面展示的值
!?。。。?! 注意vuex的數(shù)據(jù)都要在鉤子函數(shù)里 調(diào)用 ?。。。。。。。。。。。。。?/p>
8.@Mutation vuex中的mutation
使用與 @State 一致
?。。。。。。。。。。。?!需要注意的是要寫(xiě)一個(gè)接口 將state里面的數(shù)據(jù)類(lèi)型寫(xiě)進(jìn)去,如果直接用
state編輯器會(huì)報(bào)錯(cuò) , 當(dāng)然聲明any類(lèi)型也是可以的, 但是用了Ts還是盡量不要用any吧
?。。。。。。。。。。。。。。。。。。?!
9.@Action vuex 中的action
@Action('action里的方法名') 頁(yè)面展示的方法
?。。。。。。?! 由于異步,需要加async await 不然會(huì)一直處在padding狀態(tài),
使用promise也是可以的 ?。。。。。。。。。。。。。?!
至于 vue.config.js 網(wǎng)上很多方法,有興趣的可以去找下,在這里貼下自己的


?。。。。。。。。。。。。。。。。。。。。。?!
使用時(shí)一定引入修飾器
以上就是小編給大家姐的vue中typescript裝飾器的使用方法超實(shí)用教程,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的!
相關(guān)文章
vue使用axios時(shí)關(guān)于this的指向問(wèn)題詳解
最近在學(xué)習(xí)使用vue+axios,在使用中發(fā)現(xiàn)了一個(gè)問(wèn)題,下面總結(jié)分享給大家,這篇文章主要給大家介紹了關(guān)于vue使用axios時(shí)this的指向問(wèn)題的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。2017-12-12
vue.js實(shí)現(xiàn)雙擊放大預(yù)覽功能
這篇文章主要為大家詳細(xì)介紹了vue.js實(shí)現(xiàn)雙擊放大預(yù)覽功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-06-06
基于Element-Ui封裝公共表格組件的詳細(xì)圖文步驟
在平時(shí)開(kāi)發(fā)的時(shí)候很多情況都會(huì)使用到表格和分頁(yè)功能,下面這篇文章主要給大家介紹了關(guān)于如何基于Element-Ui封裝公共表格組件的詳細(xì)圖文步驟,需要的朋友可以參考下2022-09-09
后臺(tái)使用freeMarker和前端使用vue的方法及遇到的問(wèn)題
這篇文章主要介紹了后臺(tái)使用freeMarker和前端使用vue的方法及遇到的問(wèn)題,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-06-06
Vue中禁止編輯的常見(jiàn)方法(以禁止編輯輸入框?yàn)槔?
在我們開(kāi)發(fā)項(xiàng)目的時(shí)候,有時(shí)候我們不希望用戶對(duì)我們的頁(yè)面進(jìn)行操作,尤其是輸入框之類(lèi)的,這篇文章主要給大家介紹了Vue中禁止編輯的常見(jiàn)方法,文中介紹的方法主要以禁止編輯輸入框?yàn)槔?需要的朋友可以參考下2024-02-02
淺談vue單一組件下動(dòng)態(tài)修改數(shù)據(jù)時(shí)的全部重渲染
下面小編就為大家分享一篇淺談vue單一組件下動(dòng)態(tài)修改數(shù)據(jù)時(shí)的全部重渲染,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-03-03
element實(shí)現(xiàn)二級(jí)菜單和頂部導(dǎo)航聯(lián)動(dòng)的示例
本文主要介紹了element實(shí)現(xiàn)二級(jí)菜單和頂部導(dǎo)航聯(lián)動(dòng)的示例,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02
Vue路由對(duì)象屬性 .meta $route.matched詳解
今天小編就為大家分享一篇Vue路由對(duì)象屬性 .meta $route.matched詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-11-11

