vue 對象繼承_Vue2.0中組件的繼承與擴展是什么

Vue2.0中組件的繼承與擴展是什么

發布時間:2020-12-07 14:04:09

來源:億速云

閱讀:100

作者:小新

小編給大家分享一下Vue2.0中組件的繼承與擴展是什么,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

一、slot

1.默認插槽和匿名插槽

slot用來獲取組件中的原內容,此方式用于父組件向子組件傳遞“標簽數據”。有的時候為插槽提供默認的內容是很有用的,例如,一個 組件可能希望這個按鈕的默認內容是“如果沒有原內容,則顯示該內容”,但是同時允許用戶覆寫為別的內容。

180812

welcome to xiamen

如果沒有原內容,則顯示該內容// 默認插槽

var vm=new Vue({

el:'#itany',

components:{

'my-hello':{

template:'#hello'

}

}

});

2.具名插槽

有些時候我們需要多個插槽, 元素有一個特殊的特性:name。這個特性可以用來定義額外的插槽:

  • aaa
  • bbb
  • ccc
  1. 111
  2. 222
  3. 333

welcome to xiamen

var vm=new Vue({

el:'#itany',

components:{

'my-hello':{

template:'#hello'

}

}

});

二、mixins

1.mixins簡介

混入 (mixins) 是一種分發 Vue 組件中可復用功能的非常靈活的方式。混入對象可以包含任意組件選項。當組件使用混入對象時,所有混入對象的選項將被混入該組件本身的選項。mixins 選項接受一個混合對象的數組。

2.mixins用途

一般有兩種用途:

1、在你已經寫好了構造器后,需要增加方法或者臨時的活動時使用的方法,這時用混入會減少源代碼的污染。

2、很多地方都會用到的公用方法,用混入的方法可以減少代碼量,實現代碼重用。

例如下面的例子:實現每次數據變化時都能夠在控制臺打印出提示:"數據發生變化"

Mixins


num:{{ num }}

增加數量

var addLog = { //額外臨時加入時,用于顯示日志

updated: function () {

console.log("數據發生變化,變化成" + this.num + ".");

}

}

Vue.mixin({// 全局注冊一個混入,影響注冊之后所有創建的每個 Vue 實例

updated: function () {

console.log("我是全局的混入")

}

})

var app = new Vue({

el: '#app',

data: {

num: 1

},

methods: {

add: function () {

this.num++;

}

},

updated() {

console.log("我是原生的update")

},

mixins: [addLog]//混入

})

3.mixins的調用順序

上例說明了:從執行的先后順序來說,混入對象的鉤子將在組件自身鉤子之前調用,如果遇到全局混入(Vue.mixin),全局混入的執行順序要前于混入和組件里的方法。

三、extends

1.extends用法

extends選項允許聲明擴展另一個組件,而無需使用 Vue.extend。

通過外部增加對象的形式,對構造器進行擴展。它和混入mixins非常的類似。只不過接收的參數是簡單的選項對象或構造函數,所以extends只能單次擴展一個組件。

Extends


num:{{ num }}

add

var bbb = {

updated() {

console.log("我是被擴展出來的");

},

methods: {

add: function () { //跟原生的方法沖突,取原生的方法,這點跟混入一樣

console.log('我是被擴展出來的add方法!');

this.num++;

}

}

};

var app = new Vue({

el: '#app',

data: {

num: 1

},

methods: {

add: function () {

console.log('我是原生add方法');

this.num++;

}

},

updated() {

console.log("我是擴展出來的");

},

extends: bbb// 接收對象和函數

})

從上面的例子也可看出,執行的先后順序和mixins一樣,另外擴展的方法與原生的沖突時,擴展的方法不生效,這點跟混入一樣。

2.extends和mixins優先級比較var extend={

data:{extendData:'我是extend的data'},

created:function(){

console.log('這是extend的created');

}

}

var mixin={

data:{mixinData:'我是mixin的data'},

created:function(){

console.log('這是mixin的created');

}

}

var vm=new Vue({

el:'#app',

data:{mixinData:'我是vue實例的data'},

created:function(){

console.log('這是vue實例的created');

},

methods:{

getSum:function(){

console.log('這是vue實例里面getSum的方法');

}

},

mixins:[mixin],

extends:extend

})

由此可以得出,相對于mixins,extends觸發的優先級更高

四、extend

Vue.extend只是創建一個構造器,它是為了創建可復用的組件。其主要用來服務于Vue.component,用來生成組件

/**

* 方式1:先創建組件構造器,然后由組件構造器創建組件

*/

//1.使用Vue.extend()創建一個組件構造器

var MyComponent = Vue.extend({

template: '

Hello World

'

});

//2.使用Vue.component(標簽名,組件構造器),根據組件構造器來創建組件

Vue.component('hello', MyComponent);

/**

* 方式2:直接創建組件(推薦)

*/

// Vue.component('world',{

Vue.component('my-world', {

template: '

你好,世界

'

});

var vm = new Vue({ //這里的vm也是一個組件,稱為根組件Root

el: '#itany',

data: {}

});

以上是“Vue2.0中組件的繼承與擴展是什么”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/541617.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/541617.shtml
英文地址,請注明出處:http://en.pswp.cn/news/541617.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

stack示例_C.示例中的Stack.Clone()方法

stack示例C#Stack.Clone()方法 (C# Stack.Clone() method) Stack.Clone() method is used to create a shallow copy of the stack. Stack.Clone()方法用于創建堆棧的淺表副本。 Syntax: 句法: Object Stack.Clone();Parameters: None 參數&#xff1a…

簡述計算機圖形的圖形應用主要有哪些,5計算機圖形學考試簡答題復習.doc

5計算機圖形學考試簡答題復習計算機圖形學考試簡答題復習1、簡述計算機動畫的概念,它經歷了哪幾個階段的發展?(2分)計算機動畫是指采用圖形與圖像的處理技術,借助于編程或動畫制作軟件生成一系列的景物畫面,其中當前幀是前一幀的部…

在圖片中選定任意凸多邊形制作掩膜程序MATLAB

function S get_convex_S(C,vx,vy) %該函數實現的功能為指定圖像中多邊形的頂點,返回屬于該凸多邊形中的所有像素點 %xv,yv為頂點坐標按照順時針或者逆時針。vx(1) xv(end); yv(1) yv(end) %輸入的C是結構,vx vy是數組存的是頂點坐標。 %輸…

js console 輸出到文件_Node.js核心入門

正文核心模塊是Node.js的心臟,主要是有一些精簡高效的庫組成(這方面和Python有很大的相似之處),為Node.js提供了基礎的API。主要內容包括:Node.js核心入門(一)全局對象常用工具事件機制Node.js核心入門(二)文件系統訪問HTTP服務器與客戶端全局…

scala 當前日期_如何在Scala中檢查當前日期和時間?

scala 當前日期Scala is a general-purpose programming language, which is majorly used for data manipulation. It has libraries and support for almost all different utilities that are important. One of the important things that are required while programming …

計算機科學考試大綱,計算機科學與技術考試大綱.doc

計算機科學與技術考試大綱計算機科學與技術專業本專業的專業課程考試為“計算機軟件基礎”和“計算機硬件基礎”兩門課程的組合試卷,卷面總分200分,時間150分鐘,考試方式為筆試。考試可攜帶計數器,但禁止攜帶文曲星、商務通等帶有…

eclipse中項目內存溢出問題

2019獨角獸企業重金招聘Python工程師標準>>> SpringBoot項目熱啟動Perm區內存溢出。 Failed to instantiate [org.springframework.orm.jpa.JpaVendorAdapter]: Factory method jpaVendorAdapter threw exception; nested exception is java.lang.OutOfMemoryErro…

云盾idaas登陸_移動端掃碼登錄IDaaS平臺

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":10,"count":10}]},"card":[{"des":"刷臉門禁通行系統前端接入人臉AI賦能的人臉…

express rest_Express / Node中用于REST API的郵遞員工具

express restWhen dealing with routes (like in express), we may use any of the REST verbs and at times, the browser is limited to facilitate testing the routes/REST API. 在處理路由時(如快速表達),我們可以使用任何REST動詞,有時瀏覽器會受到…

我們在使用計算機時,不能做什么?,11秋季學期計算機應用技術基礎學習周期_01任務-在線作業[1]1...

1.選購顯示器應優先考慮顯示器的( B )性能指標選A.顯示器的防輻射指標B. 顯示器的帶寬C. 顯示器的刷新率D. 顯示器的尺寸2. 一個聲音文件采用雙聲道8位采樣精度、22K采樣頻率錄音,它的大小是5M,如果采用單聲道16位采樣精度、44K采樣頻率錄音,…

按一個按鈕會隨機死人_《饑荒》那些年坑爹的隨機地圖,最后一個簡直笑死人...

饑荒是一款隨機性很強的游戲,這也是饑荒這款游戲相當耐玩的主要原因。別的不說小編敢保證隨機開圖的話你絕對找不到兩張一模一樣的地圖。地圖上的資源也會大不相同。不管是稀有的各種奇遇還是基礎資源的刷新數量都是完全不同的。當然對于一些基礎資源玩家們并沒有多…

介詞at_介詞邏輯| 離散數學

介詞at介詞或陳述 (Preposition or Statement) A preposition is a definition sentence which is true or false but not both. 介詞是一個定義語句,它是對還是錯,但不能同時包含兩者。 For example: The following 8 sentences, 例如:以下…

職稱計算機提前考試試卷,職稱計算機考試多項選擇考試卷模擬考^試題

《職稱計算機考試多項選擇考試卷模擬考^試題》由會員分享,可在線閱讀,更多相關《職稱計算機考試多項選擇考試卷模擬考^試題(8頁珍藏版)》請在人人文庫網上搜索。1、姓名:________________ 班級:________________ 學號:…

形象易懂講解算法I——小波變換

https://zhuanlan.zhihu.com/p/22450818?referdong5 最早發于回答:能不能通俗的講解下傅立葉分析和小波分析之間的關系? - 咚懂咚懂咚的回答現收入專欄。從傅里葉變換到小波變換,并不是一個完全抽象的東西,可以講得很形象。小波變…

r語言安裝ipsolve_R語言矩陣操作之矩陣運算

1.轉置運算對于矩陣A,函數t(A)表示矩陣A的轉置,如:> Amatrix(1:6,nrow2);> A;[,1] [,2] [,3][1,] 1 3 5[2,] 2 4 6> t(A);[,1] [,2][1,] 1 2[2,] 3 4[3,] 5 62.求方陣的行列式函數det()是求矩陣…

使用Linux命令行歸檔文件

存檔文件 (Archiving Files) As we already understand what Compression (Compression techniques in Linux) is? We shall learn about Archives. We prefer compression as it is convenient to send file compressed through a network but sometimes it is not a smart w…

http緩存機制之304狀態碼

在網上看到一篇關于解釋瀏覽器緩存更新機制304狀態碼的文章,里面說如果請求頭中的If-Modified-Since字段和If-None-Match字段的值分別和響應頭中的Last-Modified字段和Etag字段值一致,服務器就會返回304狀態碼(無響應體),瀏覽器就從本地讀取緩…

東北大學 計算機技術導師,報考東北大學 計算機技術 329分 求調劑相關專業

自薦類型:碩士自薦報考院校:東北大學報考專業:(專業碩士)計算機技術[085211]本科院校:沈陽工程學院本科專業:計算機科學與技術初試成績:總分:329政治:69 英語:71 …

c語言i++和++i程序_使用C ++程序修改鏈接列表的內容

c語言i和i程序Problem statement: 問題陳述: Given a linked list, you modified that linked list in such a way that the elements of the first half of that linked list are the difference of the first node to the last node and next node is the differ…

原生js設置div隱藏或者顯示_10種JS控制DIV的顯示隱藏代碼

div隱藏與顯示#menus {background-color: #c4cff0;}function Layer_HideOrShow(cur_div){ var currentdocument.getElementById(cur_div);if(current.style.visibility"hidden"){current.style.visibility "visible";}else{current.style.visibility "…