#VUE#
v-cloak:解決網速慢閃爍問題 ,不會替換掉標籤裡面的內容
v-text:會替換掉標籤裡面的內容:原樣輸出
v-html:會解析標籤
v-bind:綁定屬性的指令,縮寫 : 只能實現數據的單向綁定。從M自動綁定到V,無法實現數據的雙向綁定
v-on 綁定事件:縮寫@
<div>{{mgs2}}div>
<p v-cloak>{{msg}}----p>
<p v-text="msg">==========p>
<div v-text="mgs2">div>
<div v-html="mgs2">div>
<input type="button" value="按鈕" :title="mytitle+'123'">
箭頭函數:解決this指向問題, 內部的this 和外部的this保持一致,
使用. @click.stop="btnHandle" 阻止事件冒泡 從裡到外
.prevent 阻止默認行為,連結跳轉,
.capture 實現捕獲觸發事件的機制 從外到裡
.self 只有點擊當前元素時觸發,冒泡和捕獲都不管用,
.once 只觸發一次事件處理函數
.stop和.self的區別
.self只會阻止自己身上冒泡行為,並不會阻止其他元素的冒泡行為
v-model :實現表單元素和Model中數據的雙向數據綁定,只能用在表單元素中
類樣式:使用v-bind 數組
數組中使用三元表達式,:class="['thin','italic',{'active:false'}]"
對象 :class={red:true,thin:true,italic:false}
:style={color:'red','font-weight':200}
v-for=" count in 10"
in 後面可以放 普通數組,數組對象,對象,數字,如果是數字,count 從1 開始
key 屬性只能使用數字和字符串,在使用的時候必須用v-bind屬性綁定的形式指定唯一的字符串或
數字類型 :key的值,
v-if 每次會重新刪除或創建元素,
v-show:設置元素的display:none 樣式 ,頻繁切換用v-show ,
foreach some filter findIndex
String.prototype.includes()包含方法
$(':contains("哈")') 包含哈的標籤
過濾器:
全局過濾器:所有vm實例都可以使用
{{ msg| 過濾器名字(參數) | 過濾器名字(參數)}}
Vue.filter("過濾器名字",function(data,參數){
});
私有過濾器:
fliters:{
}
如果 私有過濾器和全局過濾器的名稱一致了,調用私有過濾器,採取就近原則
String.prototype.padStart(2,'0');
String.prototype.padEnd(2,'0');
鍵盤修飾符:@keyup.enter="add"
@keyup.113="add"
自定義鍵盤碼: Vue.config.keyCodes.f2=113;
全局指令:
1.Vue中所有的指令都以v-開頭
2.參數1,指令的名稱,定義的時候,指令的前面不需要加V-前綴,
用的時候才加
3.參數2,是一個對象,這個對象身上有一些指令相關的函數,這些函數在特定的階段執行
相關的操作
Vue.directive('focus',{
bind:function(el){
函數中第一個參數永遠是el,表示被綁定了指令的那個元素,是一個原生的js對象
//每當指令綁定到元素上的時候,會立刻執行這個bind函數,只執行一次
inserted:function(){
//元素插入到dom中的時候,會執行一次
update:function(){
//當VNode更新的時候,會執行,可能會觸發多次
});
私有指令:
diectives:{}
Vue生命周期
一 創建階段:
1.在beforeCreate()生命周期函數執行的時候,data 和methods中的數據都還沒有初始化
2.在created()中,data 和methods都已經被初始化好了,如果要調用methods中的方法
或者操作data中的數據,最早只能在created中操作
3.在beforeMount()函數執行的時候,模版已經在內存中編輯好了,但是尚未掛載到
頁面中去,此時,頁面還是舊的
4.mounted()表示內存中的模版已經真實的掛載到了頁面中,用戶
已經可以看到渲染好的頁面了,是實例創建期間的最後一個生命周期
函數,當執行完mounted就表示整個Vue實例已經初始化完畢了,
此時,組件已經脫離了創建階段進入到了運行階段
二 運行階段
beforeUpdate() 執行的時候頁面還是舊的,此時data中的數據是新的,頁面尚未和最新的數據保持同步
updated(), 頁面和data數據已經保持同步了,都是最新的
這兩個事件會根據data數據的改變有選擇性的觸發0次或多次
三 銷毀階段:
beforeDestroy() Vue實例就已經從運行階段進入到了銷毀階段,實例身上所有的data和所有的methods,以及過濾器
指令....都處於可用狀態,還有真正執行銷毀過程
destroyed 所有的數據、方法、指令、過濾器·····不可用了
vue-resource 發 get post .json ,請求
Vue.http.options.root="";
請求的路徑應該以相對路徑開頭,不能帶"/"
Vue.http.options.emulateJSON=true;
動畫:
1.使用transition標籤包裹起來
. v-enter,
.v-leave-to{}
.v-enter-active,
.v-leave-avtive{}
2.半場動畫
@before-enter="beforeEnter"
@enter="enter"
@after-enter="afterEnter"
在實現過度的時候,如果需要過渡的元素是通過v-for 循環渲染出來的
需要使用transitionGroup標籤包裹
v-for 循環創建的元素設置動畫,必須為每一個元素設置:key屬性
.v-move{
transition:all 0.6s ease;
.v-leave-active{
position:absolute;
兩個配合使用可以實現列表後續的元素漸漸的飄上來的效果
給transitionGroup 添加appear屬性實現頁面剛展示出來時候入場的效果,
設置tag="ul" , 指定transitionGroup渲染為指定的元素,如果不指定
tag屬性,默認渲染為span標籤