Vue學習之路(6)-組合配置選項以及其他配置選項
引言
測試基於vue初始化的腳手架,不加router等其他的,使用index.html,編輯的入口main.js,結合控制檯和頁面觀察輸出結果,學習選項的使用
組合配置選項
parent
型別:Vue instance
詳細
指定已建立的例項之父例項,在兩者之間建立父子關係。
子例項可以用 this.$parent 訪問父例項,子例項被推入父例項的 $children 陣列中。
節制地使用 $parent 和 $children - 它們的主要目的是作為訪問元件的應急方法。
更推薦用 props 和 events 實現父子元件通訊
// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
Vue.config.productionTip = false
/* eslint-disable no-new */
var parent = new Vue({
el: '#parent',
template: `<div>
<button v-on:click="childrenMsg">點我呀</button>
<h1>Parent {{msg}}</h1>
</div>`,
methods:{
childrenMsg:function () {
this.$children[0].$data.msg++;
}
},
data: function () {
return {msg:0}
}
})
var children = new Vue({
el: '#children',
parent:parent,
template: `<div>
<button v-on:click="parentMsg">點我呀</button>
<h1>Children {{msg}}</h1>
</div>`,
methods:{
parentMsg:function () {
this.$parent.msg++;
}
},
data: function () {
return {msg:0}
}
})
mixins
型別:Array<Object>
詳細:
mixins 選項接受一個混入物件的陣列。這些混入例項物件可以像正常的例項物件一樣包含選項,他們將在 Vue.extend() 裡最終選擇使用相同的選項合併邏輯合併。舉例:如果你的混入包含一個鉤子而建立元件本身也有一個,兩個函式將被呼叫。
Mixin 鉤子按照傳入順序依次呼叫,並在呼叫元件自身的鉤子之前被呼叫。
示例:
var mixin = {
created: function () { console.log(1) }
}
var vm = new Vue({
created: function () { console.log(2) },
mixins: [mixin]
})
// => 1
// => 2
extends
型別:Object | Function
詳細:
允許宣告擴充套件另一個元件(可以是一個簡單的選項物件或建構函式),而無需使用 Vue.extend。這主要是為了便於擴充套件單檔案元件。
這和 mixins 類似,區別在於,元件自身的選項會比要擴充套件的源元件具有更高的優先順序。
示例:
// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
Vue.config.productionTip = false
/* eslint-disable no-new */
var CompA = {
template:'<div>template from CompA</div>',
beforeCreate:function () {
console.log('beforeCreate form CompA ')
},
created:function () {
console.log('created from CompA')
}
}
var CompB = {
extends:CompA,
template:'<div>template from CompB</div>',
beforeCreate:function () {
console.log('beforeCreate form CompB')
}
};
new Vue({
el:'#app',
components:{CompB},
template:'<CompB></CompB>'
});
事件鉤子會觸發,但是template優先選擇子元件的
provide / inject
看了半天沒理解這玩意,有空再補充
其它配置選項
name
型別:string
限制:只有作為元件選項時起作用。
詳細:
允許元件模板遞迴地呼叫自身。注意,元件在全域性用 Vue.component() 註冊時,全域性 ID 自動作為元件的 name。
指定 name 選項的另一個好處是便於除錯。有名字的元件有更友好的警告資訊。另外,當在有 vue-devtools,未命名元件將顯示成 ,這很沒有語義。通過提供 name 選項,可以獲得更有語義資訊的元件樹。
delimiters
型別:Array
預設值:[“{{“, “}}”]
限制:這個選項只在完整構建版本中的瀏覽器內編譯時可用。
詳細:
改變純文字插入分隔符。
示例:
new Vue({
delimiters: ['${', '}']
})
// 分隔符變成了 ES6 模板字串的風格
functional
型別:boolean
詳細:
使元件無狀態 (沒有 data ) 和無例項 (沒有 this 上下文)。他們用一個簡單的 render 函式返回虛擬節點使他們更容易渲染。
參考:函式式元件
model
型別:{ prop?: string, event?: string }
詳細:
允許一個自定義元件在使用 v-model 時定製 prop 和 event。預設情況下,一個元件上的 v-model 會把 value 用作 prop 且把 input 用作 event,但是一些輸入型別比如單選框和複選框按鈕可能想使用 value prop 來達到不同的目的。使用 model 選項可以迴避這些情況產生的衝突。
Example:
Vue.component('my-checkbox', {
model: {
prop: 'checked',
event: 'change'
},
props: {
// this allows using the `value` prop for a different purpose
value: String,
// use `checked` as the prop which take the place of `value`
checked: {
type: Number,
default: 0
}
},
// ...
})
<my-checkbox v-model="foo" value="some value"></my-checkbox>
上述程式碼相當於:
<my-checkbox
:checked="foo"
@change="val => { foo = val }"
value="some value">
</my-checkbox>
inheritAttrs
型別:boolean
預設值:true
詳細:
預設情況下父作用域的不被認作 props 的特性繫結 (attribute bindings) 將會“回退”且作為普通的 HTML 特性應用在子元件的根元素上。當撰寫包裹一個目標元素或另一個元件的元件時,這可能不會總是符合預期行為。通過設定 inheritAttrs 到 false,這些預設行為將會被去掉。而通過 (同樣是 2.4 新增的) 例項屬性 $attrs 可以讓這些特性生效,且可以通過 v-bind 顯性的繫結到非根元素上。
注意:這個選項不影響 class 和 style 繫結。
comments
型別:boolean
預設值:false
限制:這個選項只在完整構建版本中的瀏覽器內編譯時可用。
詳細:
當設為 true 時,將會保留且渲染
相關推薦
Vue學習之路(6)-組合配置選項以及其他配置選項
引言 測試基於vue初始化的腳手架,不加router等其他的,使用index.html,編輯的入口main.js,結合控制檯和頁面觀察輸出結果,學習選項的使用 組合配置選項 parent 型別:Vue instance 詳細 指定已建立
Python學習之路6?函數,遞歸,內置函數
erro memory 子程序 none 種類 lan 萬年 字典 得到 一python中的函數 函數是邏輯結構化和過程化的一種編程方法。 python中函數定義方法: def test(x): "The function definitions" x
Linux學習之路-Nginx(2)安裝及配置文件篇【23】---20180210
Nginx編譯 Nginx yum安裝 主配置文件分析 Core functionality分 一、Nginx的安裝方法及配置介紹1、yum安裝官方: http://nginx.org/packages/centos/7/x86_64/RPMSFedora-EPEL: http
Vue學習之路7-v-on指令學習之簡單事件綁定
調用 pan spl onerror reset ima 簡單 rip 指令 前言 在JavaScript中任何一個DOM元素都有其自身存在的事件對象,事件對象代表事件的狀態,比如事件在其中發生的元素、鍵盤按鍵的狀態、鼠標的位置和鼠標按鈕的狀態等。事件通常與函數結合使用,函
Vue學習之路8-v-on指令學習簡單事件綁定之屬性
當前 14. export mit 修飾符 第一次 例如 www sco 前言 上一篇文章以v-on指令綁定click事件為例介紹了v-on指令的使用方法,本文介紹一下v-on綁定事件的一些屬性的使用方法。 v-on綁定指令屬性 .stop屬性 阻止單擊事件繼
vue學習之路 - 1.初步感知
mar 進行 配置 單元素 ie8 getter 控件 world 特性 一、安裝 這裏使用node的npm包管理工具進行操作。操作前請先下載node。 在工程文件夾中使用以下命令安裝vue: npm install vue 如下圖所示:我在 he
vue學習之路 - 4.基本操作(下)
align 過去 開始 就會 binding 效果 不可 exp 功能 vue學習之路 - 4.基本操作(下) 簡述:本章節主要介紹 vue 的一些其他常用指令。 Vue 指令 這裏將 vue 的指令分為系統內部指令(vue 自帶指令)和用戶自定義指令兩種。 系統內部指
Python3學習之路~6.2 實例演示面向對象編程的好處
之路 %s python 哈哈 對象 name 面向 lex 我們 首先建一個dog類,實例化為3個dog對象,並讓它們都叫。 class Dog: def bulk(self): print("xiaohuang:wang wang wa
Vue學習之路(九) --- 非父元件之間的通訊
1. 非vuex實現 非父元件之間的通訊 原理是:在父元件或者全域性建立一個事件倉儲eventHub,然後通過$emit 和 $on 實現通訊 1.1 通過在window上繫結eventHub的Vue例項物件,具體實現方法如下: 目錄結構
Vue學習之路(八) --- vue-router使用
1.首先安裝vue-router ,在專案的資料夾中使用npm命令即npm install vue-router –save(提示:如果你在vue-cli腳手架工具中已經選擇安裝路由可以不用執行這一步) 2.在實戰中,一般路由放在src/router/index.js中具體操作
Vue學習之路(七)---transition過渡動畫
vue中過度動畫v-if和v-show都可以使用,首先要明白四個狀態,v-enter(剛開始進入) ,v-enter-active(進入過程中到進入完畢),v-leave-enter(剛開始離開),v-leave-enter-active(離開過程中到離開),示例圖如下 好的,弄
Vue學習之路(六)---父元件與子元件之間的資料傳遞
前面我講了基本元件的寫法,現在一起學下父元件怎樣傳遞資料到子元件,以及子元件傳遞資料到父元件的 1.父元件傳遞資料到子元件 1.1 通過props傳遞 父元件App.vue中 <component-a big-num=98></component-a&g
MySQL學習之路6
MySQL函式 1.數學函式 1.1絕對值函式ABS(x),返回圓周率的函式PI(x) 例: 使用絕對值函式 mysql> SELECT ABS(-33),ABS(-3.3),ABS(2); +----------+-----------+--------+ | ABS(-33
Vue學習之路之框架對比
vue框架對比 Vue和React對比 原因 Angular提供的更多是一整套解決方案,而vue更像一個生態。 Vue和React目前都是用了Virtual Dom(虛擬節點) 速度對比 速度 vue react 最快 23ms 63ms
vue學習之路(一)--vue-cli安裝+vue-router+vue-resource
一、Vue-cli:腳手架安裝a) 安裝nodejs;b) win+r,輸入cmd進入命令列工具;c) 安裝vue-cli:(-g:全域性安裝)i. 方法一:npm install vue-cli -g:此方法連結的是國外網站會比較卡;ii. 方法二:安裝cnpm,通過淘寶映
vue學習之路-----計算屬性computed,監聽器wtach,$watch()命令
雙大括號的模板內可以放入表示式,但是但複雜到一定程度時,就需要使用計算屬性。 這裡聲明瞭一個計算屬性reversedMessage,當message發生改變時,依賴message的reversedMessage也會發生改變,計算屬性的getter函式是沒有副作用的。
[HAL庫學習之路]6.WWDG-視窗看門狗
記錄自己的STM32的HAL庫的學習之路,不定期更新… 一、Pinout 二、Clock Configuration 三、Configuration 配置GPIO
vue學習之路(1)——搭建vue腳手架(vue-cli)
準備的環境和工具 1. 首先安裝node.js,官網:https://nodejs.org/en/ 2. win+r 輸入cmd 開啟 命令列 輸入node -v 出現相應的版本號,則說明安裝成功。此時已經自帶npm(包管理工具) 3. 安
Vue學習之路四——過濾器filter
文章目錄 元件中定義過濾器 全域性定義過濾器 串聯過濾器 今日學習開始 Vue沒有內建的過濾器,但是提供了api允許我們自定義過濾器。 1. 過濾器用於何處 1.雙花括號之中,通過 管道符號 | 連線 2.v-bind表示式中(2.1.0+) //花括號中
後端開發者的Vue學習之路(二)
right alt method 標簽 .com arr rac tde iyu 目錄 上篇內容回顧: 數據綁定 表單輸入框綁定 單行文本輸入框 多行文本輸入框 復選框checkbox 單選框radio 選擇框select 數據綁定的修飾符 .lazy .number