一个例子轻松学会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中的parseInt使用技巧
Sep 03 Javascript
jquery与google map api结合使用 控件,监听器
Mar 04 Javascript
JS对象转换为Jquery对象示例
Jan 26 Javascript
javascript比较两个日期的先后示例代码
Dec 31 Javascript
javascript实现可拖动变色并关闭层窗口实例
May 15 Javascript
详解vue-cli3开发Chrome插件实践
May 29 Javascript
如何通过javaScript去除字符串两端的空白字符
Feb 06 Javascript
Vue中qs插件的使用详解
Feb 07 Javascript
HTML+JS实现“代码雨”效果源码(黑客帝国文字下落效果)
Mar 17 Javascript
vue使用自定义事件的表单输入组件用法详解【日期组件与货币组件】
Jun 01 Javascript
vue-router 2.0 跳转之router.push()用法说明
Aug 12 Javascript
Vue使用axios引起的后台session不同操作
Aug 14 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中的float类型使用说明
2010/07/27 PHP
php+jQuery.uploadify实现文件上传教程
2014/12/26 PHP
php中通过DirectoryIterator删除整个目录的方法
2015/03/13 PHP
PHP+Ajax实时自动检测是否联网的方法
2015/07/01 PHP
Smarty保留变量用法分析
2016/05/23 PHP
PHP7标量类型declare用法实例分析
2016/09/26 PHP
PHP缓存工具XCache安装与使用方法详解
2018/04/09 PHP
yii框架使用分页的方法分析
2019/07/25 PHP
Javascript 面向对象 继承
2010/05/13 Javascript
简介AngularJS中使用factory和service的方法
2015/06/17 Javascript
基于jQuery实现select下拉选择可输入附源码下载
2016/02/03 Javascript
原生js三级联动的简单实现代码
2016/06/07 Javascript
js获取地址栏中传递的参数(两种方法)
2017/02/08 Javascript
微信小程序开发教程之增加mixin扩展
2017/08/09 Javascript
微信小程序scroll-x失效的完美解决方法
2018/07/18 Javascript
Jquery高级应用Deferred对象原理及使用实例
2020/05/28 jQuery
vue路由结构可设一层方便动态添加路由操作
2020/08/31 Javascript
教大家使用Python SqlAlchemy
2016/02/12 Python
python解决Fedora解压zip时中文乱码的方法
2016/09/18 Python
使用pycharm设置控制台不换行的操作方法
2019/01/19 Python
Python中遍历列表的方法总结
2019/06/27 Python
Tornado实现多进程/多线程的HTTP服务详解
2019/07/25 Python
Django使用Celery加redis执行异步任务的实例内容
2020/02/20 Python
python数据预处理方式 :数据降维
2020/02/24 Python
Python docutils文档编译过程方法解析
2020/06/23 Python
Coltorti Boutique官网:来自意大利的设计师品牌买手店
2018/11/09 全球购物
aden + anais英国官网:美国婴儿贴身用品品牌
2019/09/08 全球购物
幼儿园春游活动方案
2014/01/19 职场文书
学生保证书范文
2014/04/28 职场文书
2014年部门工作总结
2014/11/12 职场文书
思想政治表现评语
2015/01/04 职场文书
助学感谢信范文
2015/01/21 职场文书
出纳岗位职责
2015/01/31 职场文书
2015年酒店年度工作总结
2015/05/23 职场文书
如何在向量化NumPy数组上进行移动窗口
2021/05/18 Python
pandas提升计算效率的一些方法汇总
2021/05/30 Python