雙向數據流:
js內存屬性發生改變,影響頁面變化;
頁面的改變影響js內存屬性的改變;
常用指令
V-text 是元素的innertext只能在雙標籤元素中;
v-html 元素的innerhtml不能包含表達式;
v-if 元素是否插入
v-show 元素是否隱藏
v-model 上香數據綁定
v-bind 單項數據綁定
el: 渲染內容目的地(寫定的)
render 渲染內容(固定函數)
v-bind的使用
render:function(C){
return c:
}
render:(C)=>{ ES6
return c:
}
當參數是一個的時候,小括號可以省略;當代碼只有一行且是返回值的時候可以省略大括號;
render c=>c(App);
樣式:
v-bind 簡寫 : 綁定單個樣式 可用三目運算符 ;綁定多個:class="{'A':RED,'B':BLUE}[stu.score]"
v-on 簡寫 @:綁定的方法 可以省略 function;script 中要用 this trmplate中不需要this ;
沒有參數可以省略括號,
methods 是對象 key是函數名 ,值是方法體 data 是一個函數 值是初始化的值;
v-for
可以單獨使用操作數組(item,index);
可以操作對象(value, key,index);
<li v-for="(stu,index) in stus" :key="index">
<li v-for="(value,key,index) in person" :key="index">
key 類似於trank by 的一個屬性,爲的是告訴vue.js中的元素,與頁面之間的關聯,
當試圖刪除元素的時候是單個元素的刪除而不是正版替換,所以要關聯其關係 好處:有些版本必須設值,性能
父子組件
使用的是父,備用的是子
父需要引入子組件對象
import *** from './***.vue'
components:{
組件名:組件對象
}
全局組件,不需要聲明,直接用,在main.js 中引入一次,"vue.component("組件名",組件對象)" <headerValue> <header-value>
父傳子(參數)父組件通過子組件的屬性將值傳遞 可以穿常量(prop1="常量值")也可以是變量(:prop2="變量名")
子組件需要聲明:根屬性props:['prop1','prop2']然後在頁面直接用
上邊可以用的值 下邊也可以用(this.**)
查看文檔注意事項:
1.全局的代表vue.的一個屬性,爲的是告訴vue;
2.實例的代表this. 或者new vue();
3.選項代表new vue()的參數,或者export default 裏邊的屬性;
子向父通信
1.通過new vue()這樣一個對象,來$on('事件名',fn(prop1,prop2))
另一個組件引入一個相同vuebus,來$emit('事件名',prop1,prop2)
export default 的用法:相當於提供一個接口給外界,讓其他文件通過 import 來引入使用。
而對於 new Vue({})部分, 只是創建一個Vue的實例 就是相當於創建一個根組件