本人忘了的時候複習用的筆記,因此寫的比較亂。css
使用方法:html
v-bind: 行間屬性綁定 或者用冒號 :vue
v-bind:title 鼠標移上的顯示webpack
v-bind:src 綁定圖片路徑ios
v-bind:html 綁定HTML文本和標籤web
v-bind:text 綁定文本 (字符串)ajax
v-bind:class 綁定類樣式(數組)vuex
v-bind:style 動態綁定樣式 (對象)json
v-for: 1.x 和 2.x是不同的axios
v-for="i in json"
v-for="(key, value) in json"
1.x 能夠是使用$index, $key, 2.x 被移除
- <ul id="example">
<li v-for="item in items">
{{$index}}
{{$key}}
</li>
</ul>
複製代碼
<ul id="example">
<li v-for="(item,index) in items">
{{item}}
{{index}}
</li>
</ul>
複製代碼
v-on:click="one();two()"
@click="one();two()" 分號隔開
v-if顯示隱藏是將dom元素整個添加或刪除,
v-show隱藏則是爲該元素添加css--display:none,dom元素還在。
v-hide 和v-show正好相反
v-else緊跟在v-if或者v-show後邊,不然將不被識別。
.prevent: 提交事件再也不重載頁面; .stop: 阻止單擊事件冒泡; .self: 當事件發生在該元素自己而不是子元素的時候會觸發; .capture: 事件偵聽,事件發生的時候會調用
c m u d beforeCreate(建立前) 在數據觀測和初始化事件還未開始 created(建立後) 完成數據觀測,屬性和方法的運算,初始化事件,el 替換,並掛載到實例上去以後調用。實例已完成如下的配置:用上面編譯好的html內容替換el屬性指向的DOM對象。完成模板中的html渲染到html頁面中。此過程當中進行ajax交互。 beforeUpdate(更新前) 在數據更新以前調用,發生在虛擬DOM從新渲染和打補丁以前。能夠在該鉤子中進一步地更改狀態,不會觸發附加的重渲染過程。 updated(更新後) 在因爲數據更改致使的虛擬DOM從新渲染和打補丁以後調用。調用時,組件DOM已經更新,因此能夠執行依賴於DOM的操做。然而在大多數狀況下,應該避免在此期間更改狀態,由於這可能會致使更新無限循環。該鉤子在服務器端渲染期間不被調用。 beforeDestroy(銷燬前) 在實例銷燬以前調用。實例仍然徹底可用。 destroyed(銷燬後) 在實例銷燬以後調用。調用後,全部的事件監聽器會被移除,全部的子實例也會被銷燬。該鉤子在服務器端渲染期間不被調用。
vuex用於組件之間共享數據 以store做爲容器 state:用來存儲共享數據, 數據池 getters:用來獲取處理事後的數據,具備緩存的做用 mutations: 同步提交狀態的更改 actions:異步提交狀態的更改 module:當狀態管理多了, 使用module來劃分多個模塊
props:true的使用 $route的使用
post方法要記得告知後端什麼類型格式的文件 vue-resource 0.7.1版本比較好 http.post .ajax({});
capitalize, uppercase, debounce '100', currency, pluralize 'dog' ,
limitBy v-for="i in arr | limitBy 2" 截取前兩個, limitBy 截取長度, 截取起點,
filterBy v-for="i in arr | filterBy 'male' in 'sex'" 過濾i中的sex是male的,
orderBy 排序
自定義過濾器的方法 :
單向過濾器:Vue.filter('過濾器的名字', 參數){return 返回值};
雙向過濾器: Vue.filter('過濾器名字', {read(inputValue){}, write(newValue, oldValue, params){}})
不能裏面外面都定義 data 也就是data , 能夠賦值取值 log 返回data 只能查看,不能賦值和取值 $destroy 銷燬實例化對象
css中 [v-cloak]{display:none}
注意使用的時候:指令名字比能有大寫字母!!! 能夠實現的功能: 拖拽, 隨機背景顏色,圖片放大, 計數 Vue,directive('指令名', function(){
}); 雙向綁定自定義指令: Vue.directive('inputColor', { bind(){ 這裏寫初始化 }, update(參數){ 這裏寫更新後的數據 } })
Vue.elementDirective('lyz', { bind(){ 初始化 }, update(param){ 更新組件 } })
hash:hash 雖然出如今 URL 中,但不會被包括在 HTTP 請求中,對後端徹底沒有影響,所以改變 hash 不會從新加載頁面。 history:利用了HTML5 History Interface 中新增的pushState() 和replaceState() 方法, 後端要作地址重定向的處理。 history.go(-2);//後退兩次 history.go(2);//前進兩次 history.back(); //後退 hsitory.forward(); //前進
var bus = new Vue(); Vue.emit('數據名', (接收到的數據)=>{ this.本身的變量名 = 接收到的數據 })
組件輸出 -> 打包(給包組件命名,做爲標籤名使用) -> 輸出打包後的模塊 -> Vue.use(模塊名) -> <全局組件名字 />
打包組件的js文件
import cp1 from './cp1.vue'
import cp1 from './cp1.vue'
let package = {
install(vue){
vue.component('cp1', cp1)
vue.component('cp2', cp2)
}
}
export default package;
複製代碼
main.js
import package from "globalCp"
Vue.use(package)
複製代碼
其餘vue文件直接使用便可
<cp1></cp1>
複製代碼
設置vue.config.js, 裏面設置devServer的proxy, 這個是webpack的代理服務器的方式。