一个例子轻松学会Vue.js


Posted in Javascript onJanuary 02, 2017

大家都知道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用法是什么

效果图

一个例子轻松学会Vue.js

代码我已上传到github

本文已被整理到了《Vue.js前端组件学习教程》,欢迎大家学习阅读。

关于vue.js组件的教程,请大家点击专题vue.js组件学习教程进行学习。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
告诉大家什么是JSON
Jun 10 Javascript
jQuery中使用了document和window哪些属性和方法小结
Sep 13 Javascript
js动态创建表格,删除行列的小例子
Jul 20 Javascript
比较新旧两个数组值得增加和删除的JS代码
Oct 30 Javascript
JS JQUERY实现滚动条自动滚到底的方法
Jan 09 Javascript
jQuery使用CSS()方法给指定元素同时设置多个样式
Mar 26 Javascript
实例讲解Jquery中隐藏hide、显示show、切换toggle的用法
May 13 Javascript
浅析JavaScript中break、continue和return的区别
Nov 30 Javascript
原生js实现中奖信息无间隙滚动效果
Jan 18 Javascript
关于angular js_$watch监控属性和对象详解
Apr 24 Javascript
Django中使用jquery的ajax进行数据交互的实例代码
Oct 15 jQuery
微信小程序 wx:for遍历循环使用实例解析
Sep 09 Javascript
jQuery设置和获取select、checkbox、radio的选中值方法
Jan 01 #Javascript
详解照片瀑布流效果(js,jquery分别实现与知识点总结)
Jan 01 #Javascript
JavaScript cookie详解及简单实例应用
Dec 31 #Javascript
深入理解Angularjs向指令传递数据双向绑定机制
Dec 31 #Javascript
Angularjs使用ng-repeat中$even和$odd属性的注意事项
Dec 31 #Javascript
Angularjs通过指令监听ng-repeat渲染完成后执行脚本的方法
Dec 31 #Javascript
angularjs中ng-attr的用法详解
Dec 31 #Javascript
You might like
php cookie 作用范围?不要在当前页面使用你的cookie
2009/03/24 PHP
在PHP中检查PHP文件是否有语法错误的方法
2009/12/23 PHP
使用CodeIgniter的类库做图片上传
2014/06/12 PHP
PHP实现图片防盗链破解操作示例【解决图片防盗链问题/反向代理】
2020/05/29 PHP
Alliance vs Liquid BO3 第三场2.13
2021/03/10 DOTA
jQuery 1.0.4 - New Wave Javascript(js源文件)
2007/01/15 Javascript
解决window.opener=null;window.close(),只支持IE6不支持IE7,IE8的问题
2014/01/14 Javascript
通过js为元素添加多项样式,浏览器全兼容写法
2014/08/30 Javascript
jQuery基于函数重载实现自定义Alert函数样式的方法
2016/07/27 Javascript
canvas时钟效果
2017/02/16 Javascript
js 输入框 正则表达式(菜鸟必看教程)
2017/02/19 Javascript
vue.js国际化 vue-i18n插件的使用详解
2017/07/07 Javascript
原生JS实现的双色球功能示例
2018/02/02 Javascript
深入理解移动前端开发之viewport
2018/10/19 Javascript
JavaScript实现简单音乐播放器
2020/04/17 Javascript
JavaScript实现Tab标签页切换的最简便方式(4种)
2020/06/28 Javascript
[03:09]2014DOTA2国际邀请赛 Mushi前队友送上祝福
2014/07/12 DOTA
python让图片按照exif信息里的创建时间进行排序的方法
2015/03/16 Python
python使用pil库实现图片合成实例代码
2018/01/20 Python
解决pandas使用read_csv()读取文件遇到的问题
2018/06/15 Python
基于DataFrame改变列类型的方法
2018/07/25 Python
Python打开文件、文件读写操作、with方式、文件常用函数实例分析
2020/01/07 Python
使用PyTorch实现MNIST手写体识别代码
2020/01/18 Python
Python flask框架如何显示图像到web页面
2020/06/03 Python
英国的屈臣氏:Boots博姿
2017/12/23 全球购物
新西兰床上用品和家居用品购物网站:Adairs
2018/04/27 全球购物
linux面试题参考答案(7)
2014/07/24 面试题
药物学专业学生的自我评价
2013/10/27 职场文书
本科生的职业生涯规划范文
2014/01/09 职场文书
四年级数学教学反思
2014/02/02 职场文书
幼儿园小班教师个人工作总结
2015/02/06 职场文书
机修车间主任岗位职责
2015/04/08 职场文书
入党积极分子党小组意见
2015/06/02 职场文书
公司管理建议书
2015/09/14 职场文书
教您怎么制定西餐厅运营方案 ?
2019/07/05 职场文书
在MySQL中你成功的避开了所有索引
2022/04/20 MySQL