• 技术文章 >web前端 >js教程

    第一次接触神奇的前端框架vue.js

    高洛峰高洛峰2016-12-03 10:11:36原创1021
    前言

    入手2016最火前端框架之一vue.js。大概从网上找了些资料看了下vue.js,从网上的资料来看只能惊叹其发展速度太快,让我意外的是其作者是华人的前提下作品这么受欢迎。 网上的博客和教程各种组合。以至于我都有些感觉out。各种vue+webpack、vue+react、vue+es6+npm等等。琳琅满目。真是三天不学习赶不上刘少奇。

    开篇主要是初次了解下vue.js,包括v-model、v-if、v-else、v-show、v-for(2.0对$index和$key舍弃,2.0要用index属性语法为 v-for="(person,index) in persons")、v-on。

    看图

    t01982e0291c6a1d93b.jpg

    看代码

    <!DOCTYPE html>
    <html>
     
    <head>
     <meta charset="UTF-8">
     <title>Vue.js CURD</title>
     <meta id="viewport" name="viewport" content="width=device-width,minimum-scale=1,maximum-scale=1">
     <link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.3.0/css/bootstrap.min.css">
     <script src="https://unpkg.com/vue/dist/vue.js"></script>
    </head>
     
    <body>
     <div class="row" id="app">
     <div class="col-xs-12 col-md-8">
     <fieldset>
     <legend>New Person</legend>
     <div class="form-group">
     <label>ID</label>
     <input type="text" v-model="newPerson.id"/>
     </div>
     <div class="form-group">
     <label>Name:</label>
     <input type="text" v-model="newPerson.name"/>
     </div>
     <div class="form-group">
     <label>Age:</label>
     <input type="text" v-model="newPerson.age"/>
     </div>
     <div class="form-group">
     <label>Sex:</label>
     <select v-model="newPerson.sex">
     <option value="Male">Male</option>
     <option value="Female">Female</option>
     </select>
     </div>
     <div class="form-group">
     <label></label>
     <button @click="createorupdate">ok</button>
     </div>
     </fieldset>
     </div>
     <div class="col-xs-12 col-md-8">
     <table class="table table-striped">
     <thead>
     <tr>
     <th>Id</th>
     <th>name</th>
     <th>age</th>
     <th>sex</th>
     </tr>
     </thead>
     <tbody>
     <tr v-for="(person,index) in persons">
     <td>{{person.id}}</td>
     <td>{{person.name}}</td>
     <td>{{person.age}}</td>
     <td>{{person.sex}}</td>
     <td><button @click="deletePerson(index)">delete</button></td>
     <td><button @click="update(index)">update</button></td>
     </tr>
     </tbody>
     </table>
     </div>
     
     </div>
     <script>
     
     Array.prototype.arrIndex=function(obj){
     for(let i=0;i<this.length;i++){
     var tmp=this[i];
     if(tmp==obj){
     return i;
     }
     }
     }
     
     var vm=new Vue({
     el:'#app',
     data:{
     editLock:1,
     newPerson:{
     id:0,
     name:'',
     age:0,
     sex:'male'
     },
     persons:[{
     id:1,
     name: 'Jack',
     age: 30,
     sex: 'Male'
     }, {
     id:2,
     name: 'Bill',
     age: 26,
     sex: 'Male'
     }, {
     id:3,
     name: 'Tracy',
     age: 22,
     sex: 'Female'
     }, {
     id:4,
     name: 'Chris',
     age: 36,
     sex: 'Male'
     }]
     },
     methods:{
     create:function(){
     this.persons.push(this.newPerson);
     this.newPerson={id:0,name:'',age:0,sex:'male'};
     },
     createorupdate:function(){
     if(this.editLock===1){
     this.persons.push(this.newPerson);
     }else{
     //删除老对象
     var aindex=this.persons.arrIndex(this.newPerson);
     console.log(aindex);
     this.persons.splice(aindex,1);
     //插入新对象
     this.persons.push(this.newPerson);
     }
     
     this.newPerson={id:0,name:'',age:0,sex:'male'};
     },
     deletePerson:function(idx){
     this.persons.splice(idx,1);
     
     },
     update:function(idx){
     var p =this.persons[idx];
     this.editLock=0;
     this.newPerson=p;
     }
     
     }
     })
     </script>
    </body>
     
    </html>
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:vue.js
    上一篇:jQuery 如何实现一个滑动按钮开关 下一篇:jQuery生成假加载动画效果
    20期PHP线上班

    相关文章推荐

    精选22门好课,价值3725元,开通VIP免费学习!• 万字图解JavaScript笔记总结• 如何搞懂虚拟 DOM?看看这篇文章吧!• 深入聊聊Node 异步和事件循环的底层实现和执行机制• 简单介绍JavaScript “原型“与“原型链“• 聊聊Node.js中的进程、线程、协程与并发模型
    1/1

    PHP中文网