一个例子轻松学会Vue.js
程序员文章站
2023-10-17 22:17:52
大家都知道vue.js是中国人创造出来的,简单易用,所以必须要支持一下
vue采用的mvvm设计模式
也就是说model和view绑定
model改变,view的内...
大家都知道vue.js是中国人创造出来的,简单易用,所以必须要支持一下
vue采用的mvvm设计模式
也就是说model和view绑定
model改变,view的内容改变,反之亦然
vue主要有以下几个关键字
v-model 绑定模型
v-if 判断是否显示该dom
v-show 判断是否将该dom的display设为none
v-else if或者show为false时显示该dom
v-for 迭代
v-bind 绑定属性
v-on 绑定方法
我们以一个可查找的信息管理系统为例子
<!doctype html> <html> <head> <meta charset="utf-8"> <title></title> <link rel="stylesheet" href="styles/demo.css" /> </head> <body> <div id="app"> <span>key</span> <!-- 绑定model中search.key --> <!-- 内容和下面每一列的数据进行比较 --> <!-- 内容改变,下面的每一列都马上会进行比较 --> <input type="text" v-model="search.key"> <legend> create new person </legend> <div class="form-group"> <label>name:</label> <!-- 绑定model中newperson.name --> <input type="text" v-model="newperson.name"/> </div> <div class="form-group"> <label>age:</label> <!-- 绑定model中newperson.age --> <input type="text" v-model="newperson.age"/> </div> <div class="form-group"> <label>sex:</label> <!-- 绑定model中newperson.sex --> <select v-model="newperson.sex"> <option value="male">male</option> <option value="female">female</option> </select> </div> <div class="form-group"> <label></label> <!-- @click是v-on:click的缩写 --> <button @click="createperson">create</button> </div> </fieldset> <table> <thead> <tr> <th>name</th> <th>age</th> <th>sex</th> <th>delete</th> </tr> </thead> <tbody> <!-- 用v-for迭代,$index为每一个item的索引 --> <!-- v-if判断为true则显示,否则则移除,这里更适合用v-show,v-show并不会移除dom只会将display属性改为none --> <!-- 和搜索框内容进行比较 --> <tr v-for="person in people" v-if="person.name.indexof(search.key)>=0||person.sex.indexof(search.key)>=0||person.age==search.key"> <td >{{ person.name }}</td> <!-- :style是v-bind:style的缩写,满足条件则值为前面的,否则为后面的,固定的字符串要用' ',变量不需要用'' --> <!-- v-bind后面还可以接其他的属性例如class,id --> <td :style="person.age>30 ? 'color: red' : ' ' ">{{ person.age }}</td> <!-- v-else元素必须立即跟在v-if或v-show元素的后面——否则它不能被识别 --> <td v-if="person.sex =='male'">男</td> <td v-else>女</td> <td class="text-center"><button @click="deleteperson($index)">delete</button></td> </tr> </tbody> </table> </div> </body> <script src="js/vue.js"></script> <script> // 初始化vue //el获取绑定的标签,#app获取id为app的dom,.app的话则获取class为app的dom //data中为模型 //methods为方法 var vm = new vue({ el: '#app', data: { search:{ key:"" }, newperson: { name: '', age: 0, sex: 'male' }, people: [{ name: 'jack', age: 30, sex: 'male' }, { name: 'bill', age: 26, sex: 'male' }, { name: 'tracy', age: 22, sex: 'female' }, { name: 'chris', age: 36, sex: 'male' }] }, methods:{ createperson: function(){ this.people.push(this.newperson); // 添加完newperson对象后,重置newperson对象 this.newperson = {name: '', age: 0, sex: 'male'} }, deleteperson: function(index){ // 删一个数组元素 this.people.splice(index,1); } } }) </script> </html>
不需要太多的解释,直接看代码就知道vue用法是什么
效果图
代码我已上传到github
本文已被整理到了《vue.js前端组件学习教程》,欢迎大家学习阅读。
关于vue.js组件的教程,请大家点击专题vue.js组件学习教程进行学习。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。