国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

詳解vue-property-decorator使用手冊

2024-05-06 15:36:24
字體:
來源:轉載
供稿:網友

一,安裝

npm i -s vue-property-decorator

二,用法

1,@Component(options:ComponentOptions = {})

@Component 裝飾器可以接收一個對象作為參數,可以在對象中聲明 components ,filters,directives 等未提供裝飾器的選項

雖然也可以在 @Component 裝飾器中聲明 computed,watch 等,但并不推薦這么做,因為在訪問 this 時,編譯器會給出錯誤提示

import { Vue, Component } from 'vue-property-decorator'@Component({ filters: { toFixed: (num: number, fix: number = 2) => { return num.toFixed(fix) } }})export default class MyComponent extends Vue { public list: number[] = [0, 1, 2, 3, 4] get evenList() { return this.list.filter((item: number) => item % 2 === 0) }}

2,@Prop(options: (PropOptions | Constructor[] | Constructor) = {})

@Prop 裝飾器接收一個參數,這個參數可以有三種寫法:

Constructor ,例如 String,Number,Boolean 等,指定 prop 的類型; Constructor[] ,指定 prop 的可選類型; PropOptions ,可以使用以下選項: type,default,required,validator 。
import { Vue, Component, Prop } from 'vue-property-decorator'@Componentexport default class MyComponent extends Vue { @Prop(String) propA: string | undefined @Prop([String, Number]) propB!: string | number @Prop({ type: String, default: 'abc' }) propC!: string}

等同于下面的 js 寫法

export default { props: { propA: { type: Number }, propB: { default: 'default value' }, propC: { type: [String, Boolean] } }}

注意:

屬性的ts類型后面需要加上 undefined 類型;或者在屬性名后面加上!,表示 非null 和 非undefined 的斷言,否則編譯器會給出錯誤提示; 指定默認值必須使用上面例子中的寫法,如果直接在屬性名后面賦值,會重寫這個屬性,并且會報錯。

3,@PropSync(propName: string, options: (PropOptions | Constructor[] | Constructor) = {})

@PropSync 裝飾器與 @prop 用法類似,二者的區別在于: @PropSync 裝飾器接收兩個參數: 

propName: string 表示父組件傳遞過來的屬性名; 

options: Constructor | Constructor[] | PropOptions 與 @Prop 的第一個參數一致;

@PropSync 會生成一個新的計算屬性。

import { Vue, Component, PropSync } from 'vue-property-decorator'@Componentexport default class MyComponent extends Vue { @PropSync('propA', { type: String, default: 'abc' }) syncedPropA!: string}

等同于下面的 js 寫法

export default { props: { propA: { type: String, default: 'abc' } }, computed: { syncedPropA: { get() { return this.propA }, set(value) { this.$emit('update:propA', value) } } }}            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 石嘴山市| 灵璧县| 和平区| 胶南市| 七台河市| 合水县| 高邮市| 灵璧县| 安阳市| 班玛县| 新源县| 剑河县| 洞头县| 通榆县| 福贡县| 岗巴县| 兴仁县| 宁阳县| 鹰潭市| 马尔康县| 汉源县| 黔江区| 扎赉特旗| 苍南县| 光泽县| 应城市| 搜索| 昆山市| 东源县| 梨树县| 平远县| 松溪县| 都安| 拜泉县| 平安县| 嘉善县| 云林县| 安丘市| 大厂| 神池县| 江口县|