beforeCreate/created
、beforeMount/mounted
、beforeUpdate/updated
、beforeDestory/destoryed
v-for
、v-bind
(縮寫形式:prop
)、v-on
(縮寫形式@click=’sss'
)、v-if/v-else/v-else-if
、v-model
、v-once
、v-html
、v-show
...Vue.component(‘componentName',{ props:[‘p1’,’p2’], template: ‘<li>{{ p1 }}</li>' })
data/$data
、methods/$methods
、$el
、computed
(計算屬性)、$watch
、$set
、$event
、$emit
...methods
裏的方法來更新屬性(methods
裏的方法每次從新渲染都會執行)getter
,你還能夠給它設置setter
watch
偵聽器來響應數據的變化v-bind:class
的值能夠是一個對象,可實現相似react
中classnames
模塊的功能class
會被渲染拼接到template
的根節點的class
屬性上(自定義組件上可以使用v-bind:class
來作class的判斷顯示邏輯)v-bind:style
能夠用來綁定內聯樣式,這個內聯樣式的值能夠由一個對象來定義(相似css in js的模式),且能夠被定義爲數組(多個樣式對象)v-bind:style
可使用多重值的形式:<div :style=「display:[‘-webkit-box’,’-ms-flexbox’, ‘flex']"></div>
v-if/v-else/v-else-if
的時候,能夠用key來管理可複用的元素v-if
是’真正’的渲染,它會確保在切換條件過程當中條件塊內的元素的事件監聽器和子組件適時的銷燬和重建v-if
是惰性的,初始爲假,什麼也不作,直到爲真的時候才渲染元素v-show
老是渲染元素,只是簡單的進行切換v-if
的切換開銷大,v-show
則是初始渲染開銷大,頻繁切換使用v-show
,運行時常常改變則使用v-if
v-if
和v-for
一塊兒使用時,v-for
的優先級更高v-for
可遍歷數組,第二個參數是索引v-for
可遍歷對象,第二個參數是key
,第三個參數是索引v-for
和<template>
搭配可減小渲染次數v-for
和自定義組件使用時,須要使用props
來傳遞值key
,得到渲染優化push/pop/unshift/shift/splice/sort/reverse
改變原始數組filter/concat/slice
不改變原始數組,老是返回新數組vm.$set
解決)和修改length
長度賦值(使用splice
解決)的狀況vm.$set
或Object.assign
)is=「todo-item」
這種屬性的寫法比較適合DOM模板.stop
、.prevent
、.capture
、.self
、.once
、.passive
(尤爲適合移動端).passive
不用同時和.prevent
使用,後者會被忽略.enter
、.tab
、.delete
、.esc
、.space
、.up
、.down
、.left
、.right
.ctrl
、.alt
、.shift
、.meta(⌘|⊞|◆)
、.exact
(容許精確控制系統修飾符組合鍵觸發).left
、.right
、.middle
v-model
會忽略表單元素的value
、checked
、selected
,僅僅使用實例中的數據做爲數據源.lazy
、.number
、.trim
Vue.component()
全局註冊的組件可在其被註冊後的任何經過new Vue()
建立的實例所使用,包含其組件樹中的全部組件<slot>
分發內容(其實就是相似於react的children)<component>
配合屬性is
來實現camelCase
的屬性能夠在組件中使用kebab-case
props
屬性的類型props
的更新會向下流動,反之則不行instanceof
檢查inhertAttrs:false
設置不但願根元素繼承特性,可使用$attrs
屬性來設置繼承的目標元素v-on
在設置事件監聽器時,會把事件名所有轉換成小寫,推薦始終使用kebab-case
的事件名v-model
可使用自定義組件中的model
屬性自定義<slot></slot>
)/具名插槽(<slot name=「header"></slot>
)/做用域插槽(slot/slot-scope
)<keep-alive>
組件可用來緩存被切換後隱藏的組件的狀態$root
訪問根實例,$parent
訪問父組件實例(不推薦)$refs
屬性來獲取設置了ref
屬性的子組件provide
屬性容許咱們指定要分享給後代組件使用的方法,而後後代組件使用inject
屬性來得到祖先組件分享的方法(依賴注入)事件偵聽器($emit
派發的事件)css
v-on
指令偵聽$on
偵聽一個事件$once
一次性偵聽一個事件$off
中止偵聽一個事件template
來定義模板,而不是inline-template
$forceUpdate
來強制更新viewv-once
來標記,緩存靜態內容transition
組件控制過渡動畫,能夠給任何元素和組件添加進入/離開過渡當插入或刪除transition
中的元素時,vue會作以下處理html
過渡的類名vue
v-enter/v-enter-active/v-enter-to
v-leave/v-leave-active/v-leave-to
v-enter
不會在DOM插入後當即刪除,而是在animationend
事件觸發時刪除自定義過渡類名,使用如下屬性指定:node
enter-class/enter-active-class/enter-to-class
leave-class/leave-active-class/leave-to-class
typ
e屬性設置transition
或animation
來申明vue使用的動畫類型transition
組件上使用duration
來設置動畫執行的時間可使用鉤子函數react
beforeEnter/enter/afterEnter/enterCancelled
beforeLeave/leave/afterLeave/leaveCancelled
v-on
指令綁定enter/leave
中,必須使用done()
來進行回調,不然會同步調用,過渡或動畫會當即完成v-bind:css=「false」
來取消css的檢測,減小css的影響可以使用apear
設置初始渲染的過渡webpack
apear/apear-active/apear-to
beforeApear/apear/afterApear/apearCancelled
key
過渡模式:git
In-out
新元素先過渡,完成後當前元素過渡離開out-in
當前元素先過渡,完成後新元素過渡進入默認行爲
:進入和離開同時發生列表過渡 <transition-group>
github
<span>
,可以使用tag更改呈現標籤key
FLIP
動畫,使用類名v-move
來定義classmixins
混入屬性發生衝突時,以組件數據優先(一層屬性深度淺合併)mixins
混入方法發生衝突時,會將函數合併爲一個數組,優先執行混入方法,其次執行組件方法Vue.extend
策略和mixins
相同vuex
的具體實現:Vue.config.optionMergeStrategies
)Vue.directive()
directives
,類型爲Object
鉤子函數web
鉤子函數都會被傳入如下參數:vue-router
Vnode
,僅在update
和componentUpdated
中使用render
函數接受createElement
方法做爲參數createElement
方法的做用是建立一個虛擬節點(VNode)createElement
參數比較複雜,參照官網:參數VNodes
必須惟一v-if/v-for
可使用if/else
和map
重寫this.$slot.default
訪問,做用域插槽使用this.$scopeSlots.default
訪問和設置babel-plugin-transform-vue-jsx
支持JSX語法createElement
的別名是Vue生態的一個慣例,也是JSX要求的render
方法實現的VNode
,可使用Vue.compile()
方法來輸出編譯結果插件會爲vue提供全局的功能,包括但不限於如下幾種:
mixins
添加一些組件選項,如:vue-routerVue.prototype
上實現install
,第一個參數是Vue構造器,第二個參數是一個可選對象。Vue.use(MyPlugin)
使用,只會註冊一次插件Vue.use
方法{{ msg | filter }}
<div v-bind=「msg | filter"></div>
<script>
標籤引入[vue.min.js](https://vuejs.org/js/vue.min.js)
使用vue-cli
Vue.config.errorHandler
定義配置來跟蹤運行時錯誤,能夠搭配[Sentry](https://sentry.io/)
使用(集成配置).vue
文件)