閱讀時間預估:5分鐘
html
指令通俗的來講就是一個方法名的縮寫,經過特定的指令,完成特定的事情,vue中指令前綴爲v-前端
表達式的值改變時,將其產生連帶的影響,響應地做用於DOMvue
<h1 v-text="msg"></h1>
複製代碼
<h1 v-html="msg"></h1>
複製代碼
<!-- 完整語法 -->
<a v-bind:href="url"></a>
<!-- 縮寫 -->
<a :href="url"></a>
複製代碼
<!-- 完整語法 -->
<a v-on:click="doSomething"></a>
<!-- 縮寫 -->
<a @click="doSomething"></a>
複製代碼
.stop
阻止冒泡,調用 event.stopPropagation()
git
.prevent
阻止默認行爲,調用 event.preventDefault()
程序員
.capture
添加事件偵聽器時使用事件捕獲模式github
.self
只當事件在該元素自己(好比不是子元素)觸發時,纔會觸發事件express
.once
事件只觸發一次api
<input type="text" v-model="message" placeholder="edit me">
<p>Message is: {{ message }}</p>
複製代碼
<!-- 1 基礎用法 -->
<div v-for="item in items">
{{ item.text }}
</div>
<!-- item 爲當前項,index 爲索引 -->
<p v-for="(item, index) in list">{{item}} -- {{index}}</p>
<!-- item 爲值,key 爲鍵,index 爲索引 -->
<p v-for="(item, key, index) in obj">{{item}} -- {{key}}</p>
<p v-for="item in 10">{{item}}</p>
複製代碼
<div v-for="item in items" :key="item.id">
<!-- 內容 -->
</div>
複製代碼
v-bind:class="expression" or :class="expression"
<!-- 1 -->
<div v-bind:class="{ active: true }"></div> ===> 解析後
<div class="active"></div>
<!-- 2 -->
<div :class="['active', 'text-danger']"></div> ===>解析後
<div class="active text-danger"></div>
<!-- 3 -->
<div v-bind:class="[{ active: true }, errorClass]"></div> ===>解析後
<div class="active text-danger"></div>
--- style ---
<!-- 1 -->
<div v-bind:style="{ color: activeColor, 'font-size': fontSize + 'px' }"></div>
<!-- 2 將多個 樣式對象 應用到一個元素上-->
<!-- baseStyles 和 overridingStyles 都是data中定義的對象 -->
<div v-bind:style="[baseStyles, overridingStyles]"></div>
複製代碼
<p v-show="isShow">這個元素展現出來了嗎???</p>
<p v-if="isShow">這個元素,在HTML結構中嗎???</p>
複製代碼
<span v-pre>{{ this will not be compiled }}</span>
複製代碼
<span v-once>This will never change: {{msg}}</span>
複製代碼
Vue.filter('filterName', function (value) {
// value 表示要過濾的內容
})
複製代碼
<div>{{ dateStr | date }}</div>
<div>{{ dateStr | date('YYYY-MM-DD hh:mm:ss') }}</div>
<script>
Vue.filter('date', function(value, format) {
// value 要過濾的字符串內容,好比:dateStr
// format 過濾器的參數,好比:'YYYY-MM-DD hh:mm:ss'
})
</script>
複製代碼
{
data: {},
// 經過 filters 屬性建立局部過濾器
// 注意:此處爲 filters
filters: {
filterName: function(value, format) {}
}
}
複製代碼
// 只有在 keyCode 是 13 時調用 vm.submit()
@keyup.13="submit"
// 使用全局按鍵別名
@keyup.enter="add"
---
// 經過全局 config.keyCodes 對象自定義鍵值修飾符別名
Vue.config.keyCodes.f2 = 113
// 使用自定義鍵值修飾符
@keyup.enter.f2="add"
複製代碼
new Vue({
data: { a: 1, b: { age: 10 } },
watch: {
a: function(val, oldVal) {
// val 表示當前值
// oldVal 表示舊值
console.log('當前值爲:' + val, '舊值爲:' + oldVal)
},
// 監聽對象屬性的變化
b: {
handler: function (val, oldVal) { /* ... */ },
// deep : true表示是否監聽對象內部屬性值的變化
deep: true
},
// 只監視user對象中age屬性的變化
'user.age': function (val, oldVal) {
},
}
})
複製代碼
var vm = new Vue({
el: '#app',
data: {
firstname: 'jack',
lastname: 'rose'
},
computed: {
fullname() {
return this.firstname + '.' + this.lastname
}
}
})
複製代碼
看完這篇不知道面前的這位大俠是否真正的領略到vue指令的巧妙之處,必定要多用多理解每一個指令內部是如何實現的,進階大佬很是管用!!歡迎留言點贊加評論,文章有不對的地方懇請各位大佬提出.數組
若是個人分享對面前的這位大俠有所啓發,懇請以程序員最高禮遇點✨ 星加分享的方式鼓勵我.緩存
關注公衆號回覆:學習 領取前端最新最全學習資料,也能夠進羣和大佬一塊兒學習交流
猛戳我點星星