1,propsData option
<body> <h1>propsData option</h1> <hr> <header></header> <script type="text/javascript"> var header_a = Vue.extend({ template:'<p>{{message}}--{{a}}</p>', data:function(){ return { message:'Hello , I am header!' } }, props:['a'] }); new header_a({propsData:{a:12}}).$mount('header'); </script> </body>
2,computed Option 计算选项
<body> <h1>computed option</h1> <hr> <div id="app"> <p>{{newPrice}}</p> <ul> <li v-for="item in reversNews">{{item.title}}--{{item.data}}</li> </ul> </div> <script type="text/javascript"> var newsList=[ {title:'7级分销项目网站使用介绍',data:'2017/3/24'}, {title:'手机获取短信验证码',data:'2017/3/25'}, {title:'三级分销数据库设计',data:'2017/3/26'}, {title:'数据库之设计表:用户表信息以及第三方登录信息如何同',data:'2017/3/27'} ] var app = new Vue({ el:'#app', data:{ price:100, newsList:newsList }, computed:{ newPrice:function(){ return this.price='¥'+this.price+'元'; }, reversNews:function(){ return this.newsList.reverse(); } } }) </script> </body>
3,Methods Option 方法选项
<body> <h1>Methods Option 方法选项</h1> <hr> <div id="app"> {{a}} <p><button @click="add(2,$event)">add</button></p> <p><btn @click.native="add(2)"></btn></p> </div> <button onclick="app.add(3)">外部ADD</button> <script type="text/javascript"> var btn={ template:`<button>组件ADD</button>` } var app = new Vue({ el:'#app', data:{ a:1 }, components:{ "btn":btn }, methods:{ add:function(num,event){ if(num!=''){ this.a+=num; }else{ this.a++ } console.log(event); } } }) </script> </body>
4,Watch Option
<body> <h1>Watch Option</h1> <hr> <div id="app"> <p>今日温度:{{wendu}}°</p> <p>穿衣建议:{{chuanyi}}</p> <p> <button @click="shenggao">升高温度</button> <button @click="jiangdi">降低温度</button> </p> </div> <script type="text/javascript"> var chuanyiarray=['T恤短袖','夹克长裙','棉衣羽绒服']; var app = new Vue({ el:'#app', data:{ wendu:14, chuanyi:'夹克长裙' }, methods:{ shenggao:function(){ this.wendu+=5; }, jiangdi:function(){ this.wendu-=5; } }, watch:{ // wendu:function(newVal,oldVal){ // if(newVal>=26){ // this.chuanyi=chuanyiarray[0]; // }else if(newVal<26 && newVal>0){ // this.chuanyi=chuanyiarray[1]; // }else{ // this.chuanyi=chuanyiarray[2]; // } // } } }) app.$watch('wendu',function(newVal,oldVal){ if(newVal>=26){ this.chuanyi=chuanyiarray[0]; }else if(newVal<26 && newVal>0){ this.chuanyi=chuanyiarray[1]; }else{ this.chuanyi=chuanyiarray[2]; } }) </script> </body>
5,Mixins Option混入选项操作
<body> <h1>Mixins Option混入选项操作</h1> <hr> <div id="app"> {{num}} <p><button @click="add">add</button></p> </div> <script type="text/javascript"> var addConsole = { updated:function(){ console.log('数据发生变化,变成了'+this.num); } }; Vue.mixin({ updated:function(){ console.log('我是全局的混入'); } }) var app = new Vue({ el:'#app', data:{ num:1 }, methods:{ add:function(){ this.num++; } }, updated:function(){ console.log('我是原生的update'); }, mixins:[addConsole] }) </script> </body>
6,extends Option 扩展选项
<body> <h1>extends Option 扩展选项</h1> <hr> <div id="app"> {{num}}<br> ${num} <p><button @click="add">add</button></p> </div> <script type="text/javascript"> var extendsOBJ={ updated:function(){ console.log("我是扩展的updated"); }, methods:{ add:function(){ console.log('我是被扩展出来的方法'); this.num++; } } } var app = new Vue({ el:'#app', data:{ num:1 }, methods:{ add:function(){ console.log('我是原生的方法'); this.num++; } }, updated:function(){ console.log('我是原生的update'); }, extends:extendsOBJ, delimiters:['${','}'] }) </script> </body>