1. 程式人生 > >Vue學習之路(6)-組合配置選項以及其他配置選項

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