github地址:https://github.com/jiaoshibo/vuehtml
vue是一套構建用戶界面的漸進式框架,是mvvm框架的一種。vue採用了自底向上增量開發的設計,其核心庫只關注視圖層,它不只易於上手,還便於與第三方庫或既有項目整合。vue
vue有三個部分組成 : 視圖-數據-視圖模型。視圖即HTML部分。git
vue的引入:github
<script src="https://unpkg.com/vue"></script> //或者直接引入文件 <script src="js/vue.js"></script>
vue的核心是一個容許採用簡潔的模板語法來聲明式的將數據渲染進 DOM:segmentfault
<div id="app"> {{message}} </div> <script> var app = new Vue({ el: '#app', data: { message: 'Hello Vue!' } }) </script>
就這樣,數據和DOM進行了綁定,視圖將數據引入,並進行渲染,顯示出來,並且元素是響應式的,打開控制檯,修改 app.message 的值,就會發現視圖的文本也會相應的更新。數組
除了文本插值,咱們還能夠使用指令的方式綁定DOM元素屬性。app
<div id="app-2"> <span v-bind:title="message"> 鼠標懸停幾秒鐘查看此處動態綁定的提示信息! </span> </div> <script> var app2 = new Vue({ el: '#app-2', data: { message: '頁面加載於 ' + new Date().toLocaleString() } }) </script>
如上,v-bind 屬性被稱爲指令,其前綴 v- 表示其爲vue提供的特殊屬性。這裏該指令的做用是:「將這個元素節點的 title 屬性和 Vue 實例的 message 屬性保持一致」。框架
控制一個元素的顯示與隱藏mvvm
<div id="app-3"> <p v-if="seen">顯示</p> </div> <script> var app3=new Vue({ el:"#app-3", data:{ seen:true } }) </script>
若是在控制檯輸入 app3.seen=false ,你就發現上例的文本隱藏了。組件化
利用 v-for 指令綁定數組的數據來渲染一個項目列表
<div id="app-4"> <ol> <li v-for="todo in todos"> {{todo.text}} </li> </ol> </div> <script> var app4=new Vue({ el:"#app-4", data:{ todos:[ {text:"HTML"}, {text:"JAVASCRIPT"}, {text:"VUE.JS"}, ] } }) </script>
1.HTML 2.JAVASCRIPT 3.VUE.JS
在控制檯輸入 app3.todos.push({text:"CSS"}) ,列表中會增長一個新項
利用 v-on 綁定一個事件監聽器,使用戶和應用之間進行互動
<div id="app-5"> <p>{{message}}</p> <input type="button" value="逆轉消息" v-on:click="reverse"> </div> <script> var app5=new Vue({ el:"#app-5", data:{ message:"Hello world!" }, methods:{ reverse:function(){ this.message=this.message.split("").reverse().join("") } } }) </script>
經過 v-model 指令,能夠輕鬆實現表單輸入和應用狀態之間的雙向綁定
<div id="app-6"> <p>{{message}}</p> <input type="text" v-model="message"> </div> <script> var app6=new Vue({ el:"#app-6", data:{ message:"hello" } }) </script>
使用 v-bind 指令將todo傳到每個重複的組件中
<div id="app-7"> <ol> <todo-item v-for="item in groceryLIst" v-bind:todo="item" v-bind:key="item.id"></todo-item> </ol> </div> <script> Vue.component("todo-item",{ props:["todo"], template:"<li>{{todo.text}}</li>" }) var app7=new Vue({ el:"#app-7", data:{ groceryLIst:[ {id:0,text:"JAVASCRIPT"}, {id:1,text:"HTML"}, {id:2,text:"VUE"} ] } }) </script>
1.JAVASCRIPT 2.HTML 3.VUE
在上面的例子中,咱們已經設法將應用分割成了兩個更小的單元,子單元經過 props 接口實現了與父單元很好的解耦。
下一篇:Vuede 模板語法和計算屬性:https://segmentfault.com/a/11...