一个例子轻松学会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 相关文章推荐
js 判断浏览器类型 去全角、半角空格 自动关闭当前窗口
Apr 10 Javascript
Extjs优化(二)Form表单提交通用实现
Apr 15 Javascript
javascript日期格式化方法汇总
Oct 04 Javascript
js获取页面及个元素高度、宽度的代码
Apr 26 Javascript
JavaScript的Backbone.js框架入门学习指引
May 07 Javascript
Node.js服务器环境下使用Mock.js拦截AJAX请求的教程
May 23 Javascript
JQuery ZTree使用方法详解
Jan 07 Javascript
jquery+css实现下拉列表功能
Sep 03 jQuery
JS中数组与对象的遍历方法实例小结
Aug 14 Javascript
vue 监听屏幕高度的实例
Sep 05 Javascript
vue cli安装使用less的教程详解
Jul 12 Javascript
vue element-ui中table合计指定列求和实例
Nov 02 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简介
2006/10/09 PHP
php绘制一条弧线的方法
2015/01/24 PHP
php检测apache mod_rewrite模块是否安装的方法
2015/03/14 PHP
豆瓣网的jquery代码实例
2008/06/15 Javascript
简明json介绍
2008/09/28 Javascript
由Javascript实现的页面日历
2011/11/04 Javascript
用RadioButten或CheckBox实现div的显示与隐藏
2013/09/21 Javascript
ANGULARJS中使用JQUERY分页控件
2015/09/16 Javascript
jQuery实现底部浮动窗口效果
2016/09/07 Javascript
AngularJS动态绑定HTML的方法分析
2016/11/07 Javascript
jQuery用FormData实现文件上传的方法
2016/11/21 Javascript
Bootstrap基本组件学习笔记之分页(12)
2016/12/08 Javascript
基于vue实现分页/翻页组件paginator示例
2017/03/09 Javascript
详解基于Angular4+ server render(服务端渲染)开发教程
2017/08/28 Javascript
JS分页的实现(同步与异步)
2017/09/16 Javascript
vue 数组和对象不能直接赋值情况和解决方法(推荐)
2017/10/25 Javascript
[40:55]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#4Newbee VS Fnatic
2016/03/03 DOTA
[04:29]【TI9采访】OG.N0tail在胜者组决赛后接受采访
2019/08/25 DOTA
使用Python编写简单的端口扫描器的实例分享
2015/12/18 Python
python使用fork实现守护进程的方法
2017/11/16 Python
对DataFrame数据中的重复行,利用groupby累加合并的方法详解
2019/01/30 Python
关于Python3 类方法、静态方法新解
2019/08/30 Python
python3实现高效的端口扫描
2019/08/31 Python
pytorch 实现删除tensor中的指定行列
2020/01/13 Python
解决python pandas读取excel中多个不同sheet表格存在的问题
2020/07/14 Python
优衣库澳大利亚官网:UNIQLO澳大利亚
2017/01/18 全球购物
欧缇丽加拿大官方网站:Caudalie加拿大
2019/07/18 全球购物
图库照片、免版税图片、矢量艺术、视频片段:Depositphotos
2019/08/02 全球购物
武汉世纪畅想数字传播有限公司.NET笔试题
2014/07/22 面试题
客服主管岗位职责
2013/12/13 职场文书
毕业生个人投资创业计划书
2014/01/04 职场文书
工地安全检查制度
2014/02/04 职场文书
一年级语文教学反思
2014/02/13 职场文书
阳光体育活动总结
2014/04/30 职场文书
硕士论文致谢范文
2015/05/14 职场文书
2016年小学圣诞节活动总结
2016/03/31 职场文书