1,实例入门-实例属性
<body> <h1>example methods</h1> <hr> <div id="app"> {{message}} </div> <script type="text/javascript"> var app = new Vue({ el:'#app', data:{ message:'hello world!' }, mounted:function(){ $("#app").html('我是jquery'); }, methods:{ add:function(){ console.log("调用了构造器内部的ADD方法"); } } }) app.add(); </script> </body>
2,实例方法
<body> <h1>example methods 实例方法</h1> <hr> <div id="app"></div> <p><button onclick="destroy()">卸载</button></p> <p><button onclick="reload()">刷新</button></p> <p><button onclick="tick()">更改数据</button></p> <script type="text/javascript"> var jspang = Vue.extend({ template:`<p>{{message}}</p>`, data:function(){ return { message:'Hello,I am JSPang!' } }, mounted:function(){ console.log("mounted 被创建!"); }, destroyed:function(){ console.log("destroy 销毁之后"); }, updated:function(){ console.log('updated 更新之后'); } }) var vm = new jspang().$mount("#app"); function destroy(){ vm.$destroy(); } function reload(){ vm.$forceUpdate(); } function tick(){ vm.message="update message info"; vm.$nextTick(function(){ console.log('message 更新完后我被调用了') }) } </script> </body>
3,实例事件
<body> <h1>example methods 实例事件</h1> <hr> <div id="app"> {{num}} <p><button @click="add">add</button></p> </div> <p><button onclick="reduce()">reduce</button></p> <p><button onclick="reduceOnce()">reduceOnce</button></p> <p><button onclick="off()">off</button></p> <script type="text/javascript"> var app = new Vue({ el:'#app', data:{ num:1 }, methods:{ add:function(){ this.num++; } } }); app.$on("reduce",function(){ console.log("执行了reduce方法"); this.num--; }) app.$once('reduceOnce',function(){ console.log('只执行一次的方法'); this.num--; }) function reduce(){ app.$emit('reduce'); } function reduceOnce(){ app.$emit('reduceOnce'); } function off(){ app.$off('reduce'); } </script> </body>
4,内置组件 -slot讲解
<body> <h1>内置组件 -slot讲解</h1> <hr> <div id="app"> <jspang> <span slot="blogUrl">{{jspangData.blogUrl}}</span> <span slot="netName">{{jspangData.netName}}</span> <span slot="skill">{{jspangData.skill}}</span> </jspang> </div> <template id="tep"> <div> <p>博客地址:<slot name="blogUrl"></slot></p> <p>网名:<slot name="netName"></slot></p> <p>技术类型:<slot name="skill"></slot></p> </div> </template> <script type="text/javascript"> var jspang = { template:"#tep" } var app = new Vue({ el:'#app', data:{ jspangData:{ blogUrl:'http://jspang.com', netName:'技术胖', skill:"web前端" } }, components:{ "jspang":jspang } }) </script> </body>