一个例子轻松学会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 相关文章推荐
Prototype Selector对象学习
Jul 23 Javascript
神奇的7个jQuery 3D插件整理
Jan 06 Javascript
Jquery异步请求数据实例代码
Dec 28 Javascript
js arguments,jcallee caller用法总结
Nov 30 Javascript
jQuery插件AjaxFileUpload实现ajax文件上传
May 05 Javascript
jQuery源码分析之init的详细介绍
Feb 13 Javascript
AngularJS 打开新的标签页实现代码
Sep 07 Javascript
vue - vue.config.js中devServer配置方式
Oct 30 Javascript
js实现经典贪吃蛇小游戏
Mar 19 Javascript
ES6 async、await的基本使用方法示例
Jun 06 Javascript
分享15个Webpack实用的插件!!!
Mar 31 Javascript
Vue详细的入门笔记
May 10 Vue.js
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
第三节--定义一个类
2006/11/16 PHP
PHP-MySQL教程归纳总结
2008/06/07 PHP
php使用fputcsv()函数csv文件读写数据的方法
2015/01/06 PHP
php实现求相对时间函数
2015/06/15 PHP
yii,CI,yaf框架+smarty模板使用方法
2015/12/29 PHP
php使用curl获取header检测开启GZip压缩的方法
2018/08/15 PHP
tp5.0框架隐藏index.php入口文件及模块和控制器的方法分析
2020/02/11 PHP
JavaScript的Function详细
2006/11/14 Javascript
js获取多个tagname的节点数组
2013/09/22 Javascript
jQuery插件pagination实现分页特效
2015/04/12 Javascript
浅谈JavaScript字符串拼接
2015/06/25 Javascript
javascript实现根据3原色制作颜色选择器的方法
2015/07/17 Javascript
JavaScript中捕获/阻止捕获、冒泡/阻止冒泡方法
2016/12/07 Javascript
jQuery插件FusionWidgets实现的Cylinder图效果示例【附demo源码】
2017/03/23 jQuery
webpack源码之loader机制详解
2018/04/06 Javascript
Angular脚手架开发的实现步骤
2019/04/09 Javascript
微信小程序云开发详细教程
2019/05/16 Javascript
Nodejs监听日志文件的变化的过程解析
2019/08/04 NodeJs
微信小程序后台持续定位功能使用详解
2019/08/23 Javascript
Vue+iview+webpack ie浏览器兼容简单处理
2019/09/20 Javascript
Vue中axios拦截器如何单独配置token
2019/12/27 Javascript
python 排列组合之itertools
2013/03/20 Python
使用Python编写基于DHT协议的BT资源爬虫
2016/03/19 Python
Python3最长回文子串算法示例
2019/03/04 Python
python实现多线程端口扫描
2019/08/31 Python
python 解决flask uwsgi 获取不到全局变量的问题
2019/12/22 Python
详解python破解zip文件密码的方法
2020/01/13 Python
PyTorch的SoftMax交叉熵损失和梯度用法
2020/01/15 Python
Python实现遗传算法(二进制编码)求函数最优值方式
2020/02/11 Python
如何解决pycharm调试报错的问题
2020/08/06 Python
css3实现文字首尾衔接跑马灯的示例代码
2020/10/16 HTML / CSS
canvas实现按住鼠标移动绘制出轨迹的示例代码
2018/02/05 HTML / CSS
海外淘书首选:AbeBooks
2017/07/31 全球购物
国外的一些J2EE面试题一
2012/10/13 面试题
2014领导班子四风剖析对照检查材料思想汇报
2014/09/20 职场文书
服务员岗位职责
2015/02/03 职场文书