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...