vue全家桶:vue-router vuex vue-clicss
mvc:model view controllerhtml
數據雙向綁定vue
mvvm:model view view-modelvue-router
兩種設計理念來規劃網站:vuex
優雅降級 (graceful degradation) : 一開始就構建站點的完整功能,而後針對瀏覽器測試和修復vue-cli
漸進加強 (progressive enhancement) : 一開始只構建站點的最少特性,而後不斷的針對瀏覽器追加功能數組
兼容不了IE8,緣由:Object.defineProperty()瀏覽器
let obj = {}; let temp = {}; Object.defineProperty(obj,'name',{ // value: '小仙女',//給對應屬性的 屬性值 // writable:true, //該屬性是否能夠改寫,true表明能夠改寫 默認:false // enumberable:true, //該屬性是否能夠枚舉,true表明能夠枚舉 默認:false get(){ // console.log(123);//當外界使用obj.name時就會觸發該函數 return temp.name; }, //上邊是簡寫ES6的方式 正常get:function get(){} set(val){ //當外界給name設置值的時候纔會觸發 // console.log(val); // obj.name = val; temp.name = val; } }) //參數1:要操做的對象 //參數2:要操做對象的屬性名 //參數3:是個對象
數據雙向綁定 數據驅動視圖 視圖驅動數據性能優化
在vue中指的是元素以v-開頭的
行內屬性
指令後面跟的都是變量,這裏的變量是用引號包起來的mvc
v-text
至關於小鬍子語法<h2 v-text="name"></h2>
v-html
把變量對應的字符串渲染成DOM結構v-once
只渲染一次v-pre
提高編譯速度 性能優化時用的指令 操做沒有指令的html元素v-cloak
解決網速慢時顯示小鬍子的問題;須要配合css使用
視圖驅動數據v-model
用input標籤和textarea標籤上
對於vue中的數據來講,改變數據 觸發視圖更新 看該數據有沒有
get
和set
只有那些有get和set的屬性,而且這些屬性須要用到頁面上,才能觸發視圖更新
- 1.沒有get和set方法:更新視圖處理辦法:找一個無關變量,而且該無關變量在視圖中使用(能夠用display:none隱藏),更新無關變量讓其從新渲染視圖
- 2.直接新建立一個對象,用整個建立的對象整個替代原對象(不建議)
- 3.把須要的屬性都直接寫在data中
- 4.使用vue自帶的方法:
vm.$set(vm.obj,'c',12);
;參數1:要添加屬性所屬的對象;參數2:要添加的屬性名;參數3:屬性值;這種方法會把value中全部的屬性 無論有多少層;都會加上get和set
方法1:只是爲了觸發視圖更新,不會給新增元素加上get和set;方法四能夠
頁面不會顯示undefined 頁面默認把undefined處理成空字符串
更新視圖:
<button v-on:click='fn'>點我</button>
簡寫:<button @click='fn'>簡寫</button>