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

首頁 > 編程 > JavaScript > 正文

詳解vue mixins和extends的巧妙用法

2019-11-19 14:41:21
字體:
來源:轉載
供稿:網友

vue提供了mixins、extends配置項,最近使用中發現很好用。

混合mixins和繼承extends

看看官方文檔怎么寫的,其實兩個都可以理解為繼承,mixins接收對象數組(可理解為多繼承),extends接收的是對象或函數(可理解為單繼承)。

繼承鉤子函數

const extend = { created () {  console.log('extends created') }}const mixin1 = { created () {  console.log('mixin1 created') }}const mixin2 = { created () {  console.log('mixin2 created') }}export default { extends: extend, mixins: [mixin1, mixin2], name: 'app', created () {  console.log('created') }}

控制臺輸出

extends createdmixin1 createdmixin2 createdcreated
  • 結論: 優先調用mixins和extends繼承的父類,extends觸發的優先級更高,相對于是隊列
  • push(extend, mixin1, minxin2, 本身的鉤子函數)
  • 經過測試, watch的值 繼承規則一樣。

繼承methods

const extend = { data () {  return {   name: 'extend name'  } }}const mixin1 = { data () {  return {   name: 'mixin1 name'  } }}const mixin2 = { data () {  return {   name: 'mixin2 name'  } }}// name = 'name'export default { mixins: [mixin1, mixin2], extends: extend, name: 'app', data () {  return {   name: 'name'  } }}// 只寫出子類,name = 'mixin2 name',extends優先級高會被mixins覆蓋export default { mixins: [mixin1, mixin2], extends: extend, name: 'app'}// 只寫出子類,name = 'mixin1 name',mixins后面繼承會覆蓋前面的export default { mixins: [mixin2, mixin1], extends: extend, name: 'app'}
  • 結論:子類再次聲明,data中的變量都會被重寫,以子類的為準。
  • 如果子類不聲明,data中的變量將會最后繼承的父類為準。
  • 經過測試, props中屬性 、 methods中的方法 和 computed的值 繼承規則一樣。

下面單獨介紹下mixins、extends、extend

mixins

調用方式: mixins: [mixin1, mixin2]

是對父組件的擴充,包括methods、components、directive等。。。

觸發鉤子函數時,先調用mixins的函數,再調用父組件的函數。

雖然也能在創建mixin時添加data、template屬性,但當父組件也擁有此屬性時以父為準,從這一點也能看出制作者的用心(擴充)。

data、methods內函數、components和directives等鍵值對格式的對象均以父組件/實例為準

extends

調用方式: extends: CompA

同樣是對父組件的擴充,與mixins類似,但優先級均次于父組件

extend

擴展組件的構造器

當我們調用vue.component('a', {...})時自動調用

值得注意的是extend內的data為一個函數

總結

以上所述是小編給大家介紹的vue mixins和extends的巧妙用法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 沙河市| 潮安县| 海原县| 潞西市| 宁武县| 廊坊市| 二手房| 盐源县| 防城港市| 塔河县| 江津市| 东城区| 德兴市| 靖西县| 北京市| 普格县| 大冶市| 广东省| 措美县| 黄陵县| 攀枝花市| 精河县| 哈巴河县| 康马县| 扶沟县| 河南省| 蛟河市| 留坝县| 滕州市| 曲麻莱县| 丹凤县| 贵南县| 鄢陵县| 重庆市| 尉犁县| 屏东县| 那曲县| 金湖县| 锦屏县| 莱州市| 吴川市|