用法javascript
Vue.config.silent=true
取消Vue全部的日誌與警告html
用法vue
// 務必在加載 Vue 以後,當即同步設置如下內容 Vue.config.devtools = true
用法java
Vue.config.errorHandler = function (err, vm, info) { // handle error // `info` 是 Vue 特定的錯誤信息,好比錯誤所在的生命週期鉤子 // 只在 2.2.0+ 可用 }
用法web
Vue.config.warnHandler = function (msg, vm, trace) { // `trace` 是組件的繼承關係追蹤 }
爲 Vue 的運行時警告賦予一個自定義處理函數。注意這隻會在開發者環境下生效,在生產環境下它會被忽略。api
用法數組
Vue.config.ignoredElements = [ 'my-custom-web-component', 'another-web-component', // 用一個 `RegExp` 忽略全部「ion-」開頭的元素 // 僅在 2.5+ 支持 /^ion-/ ]
用法瀏覽器
Vue.config.keyCodes = { v: 86, f1: 112, // camelCase 不可用 mediaPlayPause: 179, // 取而代之的是 kebab-case 且用雙引號括起來 "media-play-pause": 179, up: [38, 87] } <input type="text" @keyup.media-play-pause="method">
給 v-on 自定義鍵位別名。app
全局API並不在構造器裏,而是先聲明全局變量或者直接在Vue上定義一些新功能,Vue內置了一些全局API。說的簡單些就是,在構造器外部用Vue提供給咱們的API函數來定義新的功能。函數
data選項是特例,須要注意在Vue.extend()中它必須是函數
<div id="mount-point"></div> // 建立構造器 var Profile = Vue.extend({ template: '<p>{{firstName}} {{lastName}} aka {{alias}}</p>', data: function () { return { firstName: 'Walter', lastName: 'White', alias: 'Heisenberg' } } }) // 建立 Profile 實例,並掛載到一個元素上。 new Profile().$mount('#mount-point')
結果以下:
<p>Walter White aka Heisenberg</p>
在下次DOM更新循環結束以後執行延遲迴調。在修改數據以後當即使用這個方法,獲取更新後的DOM
// 修改數據 vm.msg = 'Hello' // DOM 尚未更新 Vue.nextTick(function () { // DOM 更新了 }) // 做爲一個 Promise 使用 (2.1.0 起新增,詳見接下來的提示) Vue.nextTick() .then(function () { // DOM 更新了 })
2.1.0 起新增:若是沒有提供回調且在支持 Promise 的環境中,則返回一個 Promise。請注意 Vue 不自帶 Promise 的 polyfill,因此若是你的目標瀏覽器不原生支持 Promise (IE:大家都看我幹嗎),你得本身提供 polyfill。
{any} value
設置對象的屬性,若是對象是響應式的,確保屬性被建立後也是響應式的,同時觸發視圖更新。這個方法主要用於避開Vue不能檢測屬性被添加的限制
一、用Vue.set改變
function add(){ Vue.set(outData,'count',4); }
二、用Vue對象的方法添加
app.count++;
三、直接操做外部數據
outData.count++;
{string | number} key/index
刪除對象的屬性。若是對象是響應式的,確保刪除能觸發更新視圖。這個方法主要用於避開Vue不能檢測到屬性被刪除的限制,可是你應該不多會使用它。
js
// 註冊 Vue.directive('my-directive', { bind: function () {}, inserted: function () {}, update: function () {}, componentUpdated: function () {}, unbind: function () {} }) // 註冊 (指令函數) Vue.directive('my-directive', function () { // 這裏將會被 `bind` 和 `update` 調用 }) // getter,返回已註冊的指令 var myDirective = Vue.directive('my-directive')
{Function} [definition]
註冊或獲取全局過濾器
/ 註冊
Vue.filter('my-filter', function (value) {
// 返回處理後的值
})
// getter,返回已註冊的過濾器
var myFilter = Vue.filter('my-filter')
{Function | Object} [definition]
註冊或獲取全局組件。註冊還會自動使用給定的id設置組建的名稱
/ 註冊組件,傳入一個擴展過的構造器 Vue.component('my-component', Vue.extend({ /* ... */ })) // 註冊組件,傳入一個選項對象 (自動調用 Vue.extend) Vue.component('my-component', { /* ... */ }) // 獲取註冊的組件 (始終返回構造器) var MyComponent = Vue.component('my-component')
局部註冊組件和全局註冊組件是相對應的,局部註冊的組件只能在組件註冊的做用域裏進行使用,其餘做用域使用無效
<h1>component組件</h1> <hr> <p>全局組件</p> <div id="app"> <reba></reba> </div> <p>局部註冊組件</p> <div id="app1"> <panda></panda> </div> <script src="vue.js"></script> <script type="text/javascript"> //註冊全局組件 Vue.component('reba',{ template:`<div style="color:red;">全局化註冊的reba標籤</div>` }) var app=new Vue({ el:'#app', data:{ } }) var app1 = new Vue({ el: '#app1', components:{ 'panda':{ template: `<div style="color:green;">局部組件化註冊的panda標籤</div>` } } }) </script>
<h1>component組件的props屬性設置</h1> <hr> <div id="app"> <panda v-bind:here="message"></panda> </div> <script src="vue.js"></script> <script type="text/javascript"> var app = new Vue({ el: '#app', data:{ message:'SiChuan' }, components: { 'panda':{ template: `<div style="color: red;">panda 來自{{here}}</div>`, props: ['here'] } } }) </script>
用法:在render函數中編譯模板字符串。只在獨立構建時有效
var res = Vue.compile('<div><span>{{ msg }}</span></div>') new Vue({ data: { msg: 'hello' }, render: res.render, staticRenderFns: res.staticRenderFns })
直接在構造器裏的template選項後邊編寫。這種寫法比較直觀,可是模板html代碼太多,不建議這麼寫
var app=new Vue({ el:'#app', data:{ message:'hello Vue!' }, template:` <h1 style="color:red">我是選項模板</h1> ` })
<template>
標籤裏的模板這種方法更像是在寫html代碼,就算不會寫vue的人,也能夠製做頁面
<template id="demo2"> <h2 style="color:red">我是template標籤模板</h2> </template> <script type="text/javascript"> var app=new Vue({ el:'#app', data:{ message:'hello Vue!' }, template:'#demo2' }) </script>
<script>
標籤裏的模板這種寫模板的方法,可讓模板文件從外部引入
<script type="x-template" id="demo3"> <h2 style="color:red">我是script標籤模板</h2> </script> <script type="text/javascript"> var app=new Vue({ el:'#app', data:{ message:'hello Vue!' }, template:'#demo3' }) </script>