vue模板語法 mustache語法 雙大括號語法
1.指令
vue 指令
作用: 是用來操作dom的,指令就是繫結在dom身上的乙個屬性,這個屬性具備一定的功能,這個功能用來操作dom
以後我們不在像以前一樣,先獲取dom,在操作了,我們現在可以直接使用指令來操作dom
這個指令需要模板語法的支援,所以我們採用jsx語法糖
2.元件
模板語法
模板語法支援性還是很高的,資料型別都是支援的,但是不支援 輸出語法 ( console.log alert )
指令的具體展示
1.格式:
1.v-*** = 「mustache語法」
2.v-*** = 「msg」
3.v-*** = 「}」 錯誤的
2.v-html 將乙個資料展示在乙個dom內容中, innerhtml( html屬性 )
防止指令碼攻擊 xss csrf
3.v-bind
使用技巧: 凡是 dom 的屬性要和資料進行繫結,那麼我們就可以使用 v-bind
格式: v-bind:domattr = 「data」
4.v-text 非轉①輸出,v-html轉義輸出
1.2.
1new vue(
})輸出的結果為
hellow
class vs style
2?true:false,[color]: true,[box]: true}">
object寫法
2?true:false,[color]: true,[box]: true}">
arr寫法
2.條件渲染 v-if && v-show
1.條件渲染有兩個指令, 乙個是 v-if , 另外乙個是 v-show
2.v-if 有三種使用形式
單路分支
雙路分支
多路分支
單路分支
雙路1
雙路2
a b
c
new vue(
})
v-show
千鋒教育
new vue(
})
4… v-if vs v-show
1.v-if 如果值為false,那麼繫結的dom就會被銷毀
2.v-if 操作的是乙個dom的生成和銷毀
3.如果v-if的初始值時false,那麼繫結元素是否會渲染呢?
答:v-if如果是false,那麼這個dom元素是不會渲染的
4.v-show 操作的是乙個dom的dispay樣式屬性
5.如果v-show的初始值是false,那麼這個繫結的dom元素是否會渲染呢?
答:v-show不管值是什麼,它都會渲染出來
6.總結:一般來說,v-if 有更高的切換開銷,而 v-show 有更高的初始渲染開銷。因此,如果需要非常頻繁地切換,則使用 v-show 較好;如果在執行時條件很少改變,則使用 v-if 較好。
7.template:相當於虛擬dom
1.template標籤如果放在模板的範圍內使用,那麼將來不會被解析渲染23
4567
8910
new vue(
})
6.列表渲染
v-for 是用來做列表渲染的
1.格式
v-for = " *** in(of) data "
舉例:v-for = " item in(of) todos "
new vue()
2.帶引數的格式
v-for = " (item,index) in todos "
new vue(
})
key( 留一部分 )
1每次列表迴圈的後面都要繫結乙個key,是為了進行dom的唯一標識,這樣就不會讓vue因為惰性而影響列表的正常渲染
2.理想的key是使用資料中的id
資料的更新檢測
1.使用以下方法運算元組,可以檢測變動:
push() pop() shift() unshift() splice() sort() reverse()
2.新陣列替換舊陣列:filter(), concat() 和 slice() ,map()
3.不能檢測以下變動的陣列:
vm.items[indexofitem] = newvalue
解決 (1)vue.set(example1.items, indexofitem, newvalue)
vm.items.length = 0
解決 (1)splice
新增 不能檢測的
清空乙個陣列
new vue(,]},
methods: )
},notchange () ,
clear ()
}})
methods 方法
1事件的新增使用的是 v-on:eventtype = 『事件處理程式』
2.事件處理程式往options裡面的methods配置項中書寫
+
new vue(,
methods:
}})
computed 計算屬性
計算屬性中存放的也是方法
計算屬性的方法中必須要有返回值
計算屬性的方法名可以像data選項中定義的資料一樣使用
computed: )
}}
事件
1.指令v-on
2.格式
v-on:eventtype = 「事件處理程式名稱」
3.簡寫
@eventtype = 『事件處理程式名稱』
普通事件
普通事件-簡寫 事件物件 事件傳參
事件傳參
事件傳參 - 事件物件
//如果我的引數中需要事件物件
//解決: 在方法呼叫的時候,使用乙個叫做$event的作為實際引數
new vue(,
methods: ,
eventhandler ( e ) ,
arguhandler ( a, b ) ,
argu_event_handler ( a,b,e)
}})
1事件的修飾符
1.格式: v-on:click.*** = 『handler』
1.1 ***指的是修飾符的名稱
2修飾符的種類:
.stop:阻止冒泡
.prevent:阻止瀏覽器的預設行為
.capture:事件捕獲
.self:阻止冒泡
.once:事件只觸發一次
.passive:滾輪事件不會立即觸發,會等待onscoll完成再觸發
3.問題: 修飾符使用有什麼好處?
1.舉例: 事件冒泡案例
2.分析: 發現 e.stoppropagation() 在每乙個方法中都要使用,這個時候發現**很冗餘
4 解決: 事件修飾符
new vue(,
middlehandler (e) ,
smallhandler (e)
}})
按鍵修飾符
1.案例: 敲擊鍵盤的enter鍵,將使用者輸入的資料拿到手?
2.事件的書寫
2.1先寫方法,然後在繫結dom元素身上
3需要按鍵修飾符的原因:
3.1我們發現當我們需要書寫很多下面類似**的時候,發現**在重複,我們希望**能復用或是簡寫
3.2 解決: 它將這部分**封裝在自己的 vue.js中,然後我們來呼叫這個功能,我們通過按鍵修飾符來使用
new vue(
},get_user_shuru ( e )
}})
自定義按鍵修飾符鍵盤碼
vue.config.keycodes.p = 80
. 雙向資料繫結/資料驅動/深入響應式
原理:vue是通過資料劫持和事件的發布訂閱來進行資料驅動的,當我們在data選項中定義資料後,vue會通過observer(觀察者)
監聽data選項,將data選項中的所有key通過es5的object.definedpropty進行getter和setter設定,當
資料繫結在dom上是,就會觸發getter,給dom設定初始值,當我們在v(檢視中)輸入內容時,就會觸發setter
,就可以獲得最新的值,通過watch(監聽)通知vue進行v(檢視)重新渲染
v-model
vue中通過 v-model 來進行雙向資料繫結
v-model只用於表單元素
v-model預設繫結 value屬性
格式:
購物車加減案列
- +
new vue(,
decrement ()
}})
通過單項資料繫結實現雙向資料繫結
原理:鍵盤一輸入內容就要獲取input的值,然後修改vm資料
new vue(,
methods:
}})
Vue之mustache模板引擎
中高階前端 leader職位必會底層知識 vue原始碼非常龐大,各種機理很多 模板技術 資料劫持 虛擬節點 最小量更新 抽象語法樹 手寫底層原始碼,拒絕紙上談兵,讓同學能實打實的提公升程式設計 核心機理是共通的 永恆的。lang en charset utf 8 name viewport cont...
vue資料雙向繫結 mustache語法
mustache 模板,用於構造html頁面內容。在實際工作中,當同乙個模板中想要呼叫不同的函式來渲染畫面,在已經自定義好了的前提下,可以在渲染頁面時對傳入的引數進行手動判斷。mustache 的模板語法很簡單,就那麼幾個 先來乙個簡單demo,親測無bug 就是 mustache 的標示符,花括號...
Vue的插值操作 mustache語法
vue的插值操作 mustache語法 mustache語法 當變數宣告後,可以直接在宣告的範圍使用mustache語法直接顯示資料 當前計數 下面是頁面顯示的效果 使用vue 是不是很簡單 當前計數 這裡顯示就是使用的就是mustache語法 也可以做簡單的表示式操作 當前計數 顯示的是5 字串的...