一个例子轻松学会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 相关文章推荐
探讨javascript是不是面向对象的语言
Nov 21 Javascript
js实现3D图片逐张轮播幻灯片特效代码分享
Sep 09 Javascript
基于javascript实现样式清新图片轮播特效
Mar 30 Javascript
AngularJS ng-bind-template 指令详解
Jul 30 Javascript
javascript实现的全国省市县无刷新多级关联菜单效果代码
Aug 01 Javascript
JavaScript中定时控制Throttle、Debounce和Immediate详解
Nov 17 Javascript
微信小程序实现折叠展开效果
Jul 19 Javascript
Vue.js 父子组件通信的十种方式
Oct 30 Javascript
详解vue-cli+element-ui树形表格(多级表格折腾小计)
Apr 17 Javascript
运用js实现图层拖拽的功能
May 24 Javascript
js实现简单的日历显示效果函数示例
Nov 25 Javascript
基于JS判断对象是否是数组
Jan 10 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里得到前天和昨天的日期的代码
2007/08/16 PHP
php将数据库中的电话号码读取出来并生成图片
2008/08/31 PHP
php读取文件内容到数组的方法
2015/03/16 PHP
PHP实现简单爬虫的方法
2015/07/29 PHP
Ajax 数据请求的简单分析
2011/04/05 Javascript
jsvascript图像处理—(计算机视觉应用)图像金字塔
2013/01/15 Javascript
自己封装的常用javascript函数分享
2015/01/07 Javascript
JavaScript实现动态添加,删除行的方法实例详解
2015/07/02 Javascript
jQuery地图map悬停显示省市代码分享
2015/08/20 Javascript
完美解决node.js中使用https请求报CERT_UNTRUSTED的问题
2017/01/08 Javascript
JavaScript中数组的各种操作的总结(必看篇)
2017/02/13 Javascript
Angular2 自定义validators的实现方法
2017/07/05 Javascript
vue中使用cropperjs的方法
2018/03/01 Javascript
微信小程序获取用户绑定手机号方法示例
2019/07/21 Javascript
js实现贪吃蛇小游戏(加墙)
2020/07/31 Javascript
vue实现表格合并功能
2020/12/01 Vue.js
Python中声明只包含一个元素的元组数据方法
2014/08/25 Python
Python cookbook(数据结构与算法)将多个映射合并为单个映射的方法
2018/04/19 Python
Python3爬虫学习之爬虫利器Beautiful Soup用法分析
2018/12/12 Python
python学习——内置函数、数据结构、标准库的技巧(推荐)
2019/04/18 Python
Tensorflow限制CPU个数实例
2020/02/06 Python
Selenium结合BeautifulSoup4编写简单的python爬虫
2020/11/06 Python
流行文化收藏品:Sideshow(DC漫画,星球大战,漫威)
2019/03/17 全球购物
优质飞蝇钓和渔具:RiverBum
2020/05/10 全球购物
Cynthia Rowley官网:全球领先的生活方式品牌
2020/10/27 全球购物
JAVA程序员面试题
2012/10/03 面试题
职业技术学校毕业生推荐信
2013/12/03 职场文书
家庭教育先进个人事迹材料
2014/01/24 职场文书
安全生产目标责任书
2014/04/14 职场文书
大学生个人求职信
2014/06/02 职场文书
销售团队获奖感言
2014/08/14 职场文书
代领报检证委托书范本
2014/10/11 职场文书
入党积极分子个人总结
2015/03/02 职场文书
活动费用申请报告
2015/05/15 职场文书
详解Vue slot插槽
2021/11/20 Vue.js
Win11控制面板快捷键是什么?Win11打开控制面板的方法汇总
2022/07/07 数码科技