1、漸進式框架(構建用戶界面-只關注視圖層)
2、兩個核心點
① 響應的數據綁定( 當數據發生改變? --》 自動更改視圖 )
html: <div id="demo">{{message}}</div>??? // 模板
js:??????? let data={message:"hello ,Vue! ";??????? // 數據
??????????? var vm = new Vue({??????? //實例
????????????????????? el:“#demo”,??????? //掛載元素
????????????????????? data:data
???????????? });
注意點:利用object。definedProperty中的setter/getter代理數據,監控對數據的操作( 兼容iE9以上)
②組合的視圖組件(ui界面映射為組件樹)
優點:劃分組件可維護、可重用、可測試
http://element.eleme.io/%23/zh-CN/ (餓了么 vue組件庫)
3、虛擬DOM(只渲染改變的地方—對象嵌套對象)
模板(標簽)? -----》? 渲染函數? ? -----? 》虛擬DOM樹(對象)-----? 》真實的DOM
?????????????????????? 調用?????????????????????? render???????????????????????????????????? create(編譯)
4、MVVM
M:Model 數據模型
V:?? View 視圖模板
VM:view-Model 視圖模型(數據綁定 、數據的監聽)
示例:雙向數據綁定
html:
<div id="demo">?? // 模板
<input type="text" v-model="message">
<p>{{message}}</p>
</div>
js:?
let data={message:"hello ,Vue! "; } ????? // 數據
var vm = new Vue({??????? //實例
?????? el:“#demo”,??????? //掛載元素
?????? data:data
});
5、vue實例 (new Vue選項對象)
①??? 包括:el:掛載元素選擇器
????????? data:代理數據
????????? methods:定義方法
更多查看官網API
html: <div id="demo"><span v-on:click="clickHandle">{{message}}</span></div>
js:?? let? data={?? message:"hello,Vue!"}
????? new Vue({
????????????? el:"#demo",
????????????? data:data,
????????????? methods:{
??????????????????????? clickHandle(){???? alert("click")??? }????? //ESC6語法
????????????? }
???????? })
② 代理data數據
每個vue實例都會代理其data對象里的所有屬性,這些被代理的屬性是響應的,新添加的不具備響應功能,改變后不會更新視圖。
③ vue實例自身屬性和方法
暴露自身的屬性和方法,已$開頭