易用html
已经会了HTML,CSS,JavaScript?即刻阅读指南开始构建应用。vue
灵活jquery
简单小巧的核心,渐进式技术栈,足以应付任何规模的应用。ajax
性能json
20kb min+gzip 运行大小、超快虚拟 DOM 、最省心的优化。浏览器
这里最基础的一些数据绑定 也是 MVVM的一些基础 内容大部分来自官网教程app
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <script src="https://unpkg.com/vue/dist/vue.js"></script> <title></title> </head> <body> <div id="app"> <br /> <!--使用模板语法绑定 --> {{ message1 }} <br /> <!-- 双向绑定 --> <input v-model="message1"> 修改这个值 查看双向绑定 <br /> <!--元素属性方式绑定 v-bind --> <span v-bind:title="message2"> 鼠标悬停几秒钟查看此处动态绑定的提示信息! </span> <br /> <!--条件 v-if --> <p v-if="show">你看到我了</p> <br /> <!--循环 v-for --> <li v-for="todo in todos"> {{ todo.text }} </li> </div> <br /> <a href="index.html">返回</a> <script> var app = new Vue({ el: '#app', data: { message1: 'Hello Vue!', message2: '页面加载于 ' + new Date().toLocaleString(), show:true, todos: [ { text: '学习 TypeScript' }, { text: '学习 Avalon' }, { text: '学习 Vue' } ] } }) </script> </body> </html>
咱们已经生成了第一个 Vue 应用程序!这看起来和渲染一个字符串模板很是相似,可是 Vue 在背后作了大量工做。如今数据和 DOM 已经被关联在一块儿,全部的数据和 DOM 都是响应式的。咱们如何对这一切清晰领会?只需打开你的浏览器的 JavaScript 控制台(如今,就在当前页面打开),而后设置 app.message1
的值,你将看到上面的示例所渲染的 DOM 元素会相应地更新。性能
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <script src="https://unpkg.com/vue/dist/vue.js"></script> <title></title> </head> <body> <div id="app"> <p>{{ icount }}</p> <button v-on:click="showCount">显示数量</button> <br /> <button v-on:click="showTag('click element ==> ', $event)">传递参数</button> <br /> <input v-on:keyup="showKey"> 输入一些东西试试 <!-- <input v-on:keyup.Enter="showKey"> 只接受回车键 //--> </div> <br /> <br /> <a href="index.html">返回</a> <script> var app = new Vue({ el: '#app', data: { icount: 0, }, methods: { showCount: function () { this.icount++; }, showTag: function(message,event){ var name = event.target.tagName; alert(message+name); }, showKey:function(event){ alert(event.key); } } }) </script> </body> </html>
这里简单的使用jquery获取json数据 展现在选择框上, 以及修改选择内容时的数据变化控制学习
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <script src="https://unpkg.com/vue/dist/vue.js"></script> <script src="js/jquery.js"></script> <title></title> </head> <body> <div id="app"> <select v-model="selected"> <option v-for="option in options" v-bind:value="option"> {{ option.name }} </option> </select> <span>Selected: {{ selected.name }}</span> </div> <br /> <br /> <a href="index.html">返回</a> <script> var app = new Vue({ el: '#app', data: { selected: {}, options:[] }, watch:{ 'selected.value':function(newVal, oldVal){ alert("new Value is "+ newVal +"; old Value is"+oldVal); }, selected:function(newVal, oldVal){ console.info("new Text is "+ newVal.name +"; old Text is"+oldVal.name); } } }); app.$watch("selected.text",function(newVal,oldVal){ console.log("写在外部的==>"+newVal); }); $.ajax({ url:'data/list.json', type:'get', //data:{}, dataType:'json', success:function(data,state,response){ if(response.status==200){ if(data.Code==200){ app.options=data.Response; }else{ alert('request err'); } }else{ alert('server err'); } } }); </script> </body> </html>
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <script src="https://unpkg.com/vue/dist/vue.js"></script> <title></title> </head> <body> <div id="app"> {{message}} </div> <script> var app = new Vue({ el:"#app", data:{message:"hello"}, beforeCreate:function(){ console.log('================= beforeCreate'); }, created: function () { console.log('================= created'); }, beforeMount: function () { console.log('================= beforeMount'); }, mounted: function () { console.log('================= mounted'); this.message = "修改message的值,执行update相关方法"; }, beforeUpdate: function () { console.log('================= beforeUpdate'); }, updated: function () { console.log('================= updated'); }, beforeDestory: function () { console.log('================= beforeDestory'); }, destoryed: function () { console.log('================= destoryed'); } }); </script> </body> </html>
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <script src="https://unpkg.com/vue/dist/vue.js"></script> <title></title> </head> <body> <div id="example"> <my-header></my-header> <my-body v-bind:message="message"></my-body> <my-footer></my-footer> </div> <a href="index.html">Back</a> <script> Vue.component('my-header', { template: '<div>the head</div>' }) Vue.component('my-body', { // 声明 props props: ['message'], // 就像 data 同样,prop 能够在组件模板内部使用, // 而且,还能够在 vm 实例中经过 this.message 访问 template: '<div>{{ message }}</div>' }) Vue.component('my-footer', { template: '<div>the footer!</div>' }) // 建立一个根实例 new Vue({ el: '#example', data:{ message:"It is body" } }) </script> </body> </html>