vue-class-component 使用說明

vue-class-component

為了定義帶有裝飾器風(fēng)格的Vue組件低滩,如果使用Babel轉(zhuǎn)換,必須使用babel-plugin-transform-decorators-legacy 包
如果使用ts編寫鹃愤,--experimentalDecorators 設(shè)置為true

vue-class-component 提供mixins方法

//mixin.js
import Vue from 'vue'
import Component from 'vue-class-component'

@Component
export clas MyMixin extends Vue {
 mixinValue = 'Hello'
}

引入mixin.js

import Component, { mixins } from 'vue-class-component'
import MyXin from './mixin.js'

@Component
export class MyComp extends mixins(MyXin) {
    created() {
        console.log(this.mixinValue) // Hello
    }
}

創(chuàng)建自定義裝飾器
vue-class-component 提供createDecorator 方法創(chuàng)建自定義裝飾器

//decorators.js
import { createDecorator } from 'vue-class-component'
export const NoCache  = createDecorator((options, key) => {
  options.computed[key].cache = false
})
import { NoCache } from './decorators'

@Component
class MyComp extends Vue {
      @NoCache
       get random() {
          return Math.random()
      }
}

增加自定義鉤子
如果你使用像Vue-router 一樣的插件,想在組件里使用它們提供的鉤子浮驳,registerHooks方法可以實(shí)現(xiàn)

//class-component-hooks.js
import Component from 'vue-class-component'

Component.registerHooks([
 'beforeRouteEnter',
 'beforeRouteLeave',
 'beforeRouteUpdate'      //for vue-router 2.2 +
])
//MyComp.js
import Vue from 'vue'
import Component from 'vue-class-component'

@Component
class MyComp extends Vue {
   beforeRouteEnter(to, from , next) {
      console.log('beforeRouteEnter')
      next()
  }

  beoferRouteLeave(to, from, next) {
       console.log('beforeRouteLeave')
        next()
  }
}

插件鉤子需在你定義組件的時(shí)候優(yōu)先執(zhí)行

//main.js

import './class-component-hooks'

import Vue from 'vue'
import MyComp fron './MyComp'

new Vue({
    el: '#app',
    components: {
        MyComp
    }
})

??注意:
1物延、this 變量箭頭函數(shù)綁定父級(jí)域,但在Component裝飾器中這么使用會(huì)報(bào)錯(cuò)

@Component
class MyComp extends Vue {
  foo = 123
  bar = () => {
    this.foo = 456 //this 已經(jīng)不在vue的實(shí)例了
  }
}

你可以直接使用费尽,因?yàn)閂ue已經(jīng)將this自動(dòng)綁定了

@Component
class MyComp extends Vue {
  foo = 123
  bar()  {
    this.foo = 456 //Vue已經(jīng)將this自動(dòng)綁定了
  }
}

2赠群、變量定義為undefined,無法被Vue進(jìn)行數(shù)據(jù)監(jiān)控

@Component
class MyComp extends Vue {
    foo = undefined //無效
    bar = null //有效

     data() {
        retuen {
            baz : undefined // 有效
      }
    }

}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末旱幼,一起剝皮案震驚了整個(gè)濱河市查描,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖冬三,帶你破解...
    沈念sama閱讀 217,657評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件匀油,死亡現(xiàn)場離奇詭異,居然都是意外死亡长豁,警方通過查閱死者的電腦和手機(jī)钧唐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來匠襟,“玉大人钝侠,你說我怎么就攤上這事∷嵘幔” “怎么了帅韧?”我有些...
    開封第一講書人閱讀 164,057評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長啃勉。 經(jīng)常有香客問我忽舟,道長,這世上最難降的妖魔是什么淮阐? 我笑而不...
    開封第一講書人閱讀 58,509評(píng)論 1 293
  • 正文 為了忘掉前任叮阅,我火速辦了婚禮,結(jié)果婚禮上泣特,老公的妹妹穿的比我還像新娘浩姥。我一直安慰自己,他們只是感情好状您,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評(píng)論 6 392
  • 文/花漫 我一把揭開白布勒叠。 她就那樣靜靜地躺著,像睡著了一般膏孟。 火紅的嫁衣襯著肌膚如雪眯分。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,443評(píng)論 1 302
  • 那天柒桑,我揣著相機(jī)與錄音弊决,去河邊找鬼。 笑死幕垦,一個(gè)胖子當(dāng)著我的面吹牛丢氢,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播先改,決...
    沈念sama閱讀 40,251評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼疚察,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了仇奶?” 一聲冷哼從身側(cè)響起貌嫡,我...
    開封第一講書人閱讀 39,129評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤比驻,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后岛抄,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體别惦,經(jīng)...
    沈念sama閱讀 45,561評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評(píng)論 3 335
  • 正文 我和宋清朗相戀三年夫椭,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了掸掸。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,902評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蹭秋,死狀恐怖扰付,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情仁讨,我是刑警寧澤羽莺,帶...
    沈念sama閱讀 35,621評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站洞豁,受9級(jí)特大地震影響盐固,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜丈挟,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評(píng)論 3 328
  • 文/蒙蒙 一刁卜、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧曙咽,春花似錦长酗、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽之拨。三九已至茉继,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蚀乔,已是汗流浹背烁竭。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留吉挣,地道東北人派撕。 一個(gè)月前我還...
    沈念sama閱讀 48,025評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像睬魂,于是被迫代替她去往敵國和親终吼。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評(píng)論 2 354