一个例子轻松学会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 动态将数字金额转化为中文大写金额
May 14 Javascript
基于Jquery制作的幻灯片图集效果打包下载
Feb 12 Javascript
JavaScript实现自己的DOM选择器原理及代码
Mar 04 Javascript
Jquery post传递数组方法实现思路及代码
Apr 28 Javascript
javascript常见操作汇总
Sep 03 Javascript
jQuery仿天猫实现超炫的加入购物车
May 04 Javascript
Bootstrap组件(一)之菜单
May 11 Javascript
javascript实现瀑布流动态加载图片原理
Aug 12 Javascript
angular 基于ng-messages的表单验证实例
May 04 Javascript
vue router带参数页面刷新或回退参数消失的解决方法
Feb 27 Javascript
一文了解Vue中的nextTick
May 06 Javascript
如何使用JavaScript实现栈与队列
Jun 24 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提取中文首字母
2008/04/09 PHP
php_xmlhttp 乱码问题解决方法
2009/08/07 PHP
PHP反射使用实例和PHP反射API的中文说明
2014/07/02 PHP
php中加密解密DES类的简单使用方法示例
2020/03/26 PHP
php查看一个变量的占用内存的实例代码
2020/03/29 PHP
JQuery 学习笔记01 JQuery初接触
2010/05/06 Javascript
js中获取事件对象的方法小结
2011/03/13 Javascript
window.open不被拦截的实现代码
2012/08/22 Javascript
Jquery同辈元素选中/未选中效果的实例代码
2013/08/01 Javascript
jQuery1.9.1针对checkbox的调整方法(prop)
2014/05/01 Javascript
jquery操作checkbox实现全选和取消全选
2014/05/02 Javascript
举例详解AngularJS中ngShow和ngHide的使用方法
2015/06/19 Javascript
jquery对dom节点的操作【推荐】
2016/04/15 Javascript
JavaScript中有关一个数组中最大值和最小值及它们的下表的输出的解决办法
2016/07/01 Javascript
JS实现身份证输入框的输入效果
2017/08/21 Javascript
JS实现浏览上传文件的代码
2017/08/23 Javascript
Vue 报错TypeError: this.$set is not a function 的解决方法
2018/12/17 Javascript
微信小程序实现时间戳格式转换
2020/07/20 Javascript
Python Tkinter简单布局实例教程
2014/09/03 Python
深入讲解Java编程中类的生命周期
2016/02/05 Python
基于Python3 逗号代码 和 字符图网格(详谈)
2017/06/22 Python
python使用opencv读取图片的实例
2017/08/17 Python
Linux CentOS Python开发环境搭建教程
2018/11/28 Python
对Python协程之异步同步的区别详解
2019/02/19 Python
详解Python数据可视化编程 - 词云生成并保存(jieba+WordCloud)
2019/03/26 Python
Python实现UDP程序通信过程图解
2020/05/15 Python
pytorch加载语音类自定义数据集的方法教程
2020/11/10 Python
python爬虫多次请求超时的几种重试方法(6种)
2020/12/01 Python
Python类型转换的魔术方法详解
2020/12/23 Python
选购国际女性时装设计师品牌:IFCHIC(支持中文)
2018/04/12 全球购物
街头时尚在线:JESSICABUURMAN
2019/06/16 全球购物
2014年市场部工作总结
2014/11/25 职场文书
同事打架检讨书
2015/05/06 职场文书
党员反邪教心得体会
2016/01/15 职场文书
go语言map与string的相互转换的实现
2021/04/07 Golang
Mysql 一主多从的部署
2022/05/20 MySQL