Vuejs進階知識(十六)【mixin】
Mixin
是一種更好的複用程式碼的模式.
我們知道 java
, Object C
中的 interface
, implements
, extends
等關鍵字的意義,就是為了讓程式碼可以複用、繼承.
但是這幾種方法, 都理解起來很不直觀, 給人一種拐彎抹角的感覺. 特別是像我這樣很不習慣 “設計模式”的人。
在js, ruby
等動態語言中, 我們如果要複用程式碼的話,直接使用 mixin
就好了.
Mixin
的 概念
Mixin
實際上是利用語言的特性(關鍵字),以更加簡潔易懂的方式,實現了 “設計模式”中的 “組合模式”。 可以定義一個公共的類,這個類就叫做"mixin
".
然後讓其他的類,通過“include
” 這樣的語言特性,來包含mixin
, 直接具備了 mixin
所具備的各種方法。
我們下面看一下在 Vuejs
中如何使用mixin
這種強大的工具。
建立一個Mixin
檔案
可以在 src/mixin
目錄下建立, 例如:
檔案: src/mixin/common_hi.js
:
export default {
methods: {
hi: function(name){
return "你好, " + name;
}
}
}
使用
Mixin
使用起來很簡單,在對應的 js
檔案, 或者 vue
檔案的<script>
程式碼中引用即可.
例如,新建一個vue
檔案:
src/components/SayHiFromMixin.vue
, 內容如下:
<template>
<div>
{% raw %}{{{% endraw %}hi("from view")}}
</div>
</template>
<script>
import CommonHi from '@/mixins/common_hi.js'
export default {
mixins: [CommonHi],
mounted() {
alert( this.hi('from script code'))
}
}
</script>
注意:
- 使用的時候,
mixins: [CommonHi]
這裡的是中括號,表示是陣列. - 在
js
程式碼中呼叫的話, 需要帶有this
關鍵字,例如:this.hi()
路由如下:
import SayHiFromMixin from '@/components/SayHiFromMixin'
export default new Router({
routes: [
{
path: '/say_hi_from_mixin',
name: 'SayHiFromMixin',
component: SayHiFromMixin
}
]
} )
執行效果如下:
相關文章
- Vuejs進階知識(十八)【component 進階知識】VueJS
- Vuejs進階知識(十九)【slot】VueJS
- Vuejs進階知識(十七)【computed properties】VueJS
- Vuejs進階知識(二十四)【自定義Directive】VueJS
- Vuejs進階知識(二十一)【生命週期,最佳實踐】VueJS
- Vuejs進階知識(二十三)【與CSS前處理器結合使用】VueJSCSS
- js 進階知識JS
- Vuejs基本知識(九)【路由】VueJS路由
- Android進階知識:ThreadLocalAndroidthread
- 前端進階知識彙總前端
- Redis進階知識一覽Redis
- Vuejs基本知識(十)【使用樣式】VueJS
- Android進階知識:Handler相關Android
- Android知識進階樹——Window & ViewRootImplAndroidView
- Vuejs基本知識(十三)【表單的提交】VueJS
- 前端進階必備知識彙總前端
- AcWing 進階課知識點模板梳理
- Vuejs基本知識(四)【頁面渲染過程 】VueJS
- Vuejs基本知識(五)【檢視中的渲染】VueJS
- Vuejs基本知識(十二)【表單的繫結】VueJS
- Java-100天知識進階-JVM記憶體-知識鋪(三)JavaJVM記憶體
- 前端進階必須懂得TCP/IP知識前端TCP
- 前端進階-個人筆記-小知識前端筆記
- Vuejs基本知識(三)【語法簡寫說明】VueJS
- Vue進階知識(一)------專案初始化Vue
- Docker知識進階與容器編排技術Docker
- 直播美顏SDK的人臉識別技術進階知識
- vuejs基礎玩法(基礎知識,不喜勿噴!)VueJS
- Android知識進階樹——RemoteViews使用和原理詳解AndroidREMView
- JavaScript進階知識點——函式和物件詳解JavaScript函式物件
- 一些常用的 Git 進階知識與技巧Git
- Vuejs基本知識(一)【專案資料夾基本結構】VueJS
- Vuejs基本知識(八)【頁面間的引數傳遞】VueJS
- JavaEE進階知識學習-----SpringCloud(二)實踐準備JavaSpringGCCloud
- 進階計劃 | 知識小測第一期
- java知識點-高階Java
- Android高階知識點Android
- Flutter入門進階之旅(十六)Scaffold 腳手架Flutter