一个例子轻松学会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 相关文章推荐
15款优秀的jQuery导航菜单插件分享
Jul 19 Javascript
借助script进行Http跨域请求:JSONP实现原理及代码
Mar 19 Javascript
详解JS 比较两个Json对象的值是否相等的实例
Nov 20 Javascript
Windows 系统下安装和部署Egret的开发环境
Jul 31 Javascript
sso跨域写cookie的一段js脚本(推荐)
May 25 Javascript
很实用的js选项卡切换效果
Aug 12 Javascript
js实现省份下拉菜单效果
Feb 15 Javascript
JavaScript中清空数组的三种方式
Mar 22 Javascript
基于JavaScript实现报警器提示音效果
Oct 27 Javascript
js传递数组参数到后台controller的方法
Mar 29 Javascript
微信小程序block的使用教程
Apr 01 Javascript
js正则相关知识点专题
May 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中使用preg_match_all匹配文章中的图片
2013/02/06 PHP
分享一个php 的异常处理程序
2014/06/22 PHP
PHP面试题之文件目录操作
2015/10/15 PHP
php查看一个变量的占用内存的实例代码
2020/03/29 PHP
JavaScript中的Screen屏幕对象
2008/01/16 Javascript
js弹出层(jQuery插件形式附带reLoad功能)
2013/04/12 Javascript
JS实现倒计时和文字滚动的效果实例
2014/10/29 Javascript
使用JavaScript开发IE浏览器本地插件实例
2015/02/18 Javascript
Jquery插件实现点击获取验证码后60秒内禁止重新获取
2015/03/13 Javascript
JavaScript移除数组内重复元素的方法
2015/03/18 Javascript
jquery插件jquery.confirm弹出确认消息
2015/12/22 Javascript
Javascript实现单例模式
2016/01/24 Javascript
vue实现表格增删改查效果的实例代码
2017/07/18 Javascript
集成vue到jquery/bootstrap项目的方法
2018/02/10 jQuery
vue-resource请求实现http登录拦截或者路由拦截的方法
2018/07/11 Javascript
详解webpack4.x之搭建前端开发环境
2019/03/28 Javascript
vue路由拦截器和请求拦截器知识点总结
2019/11/08 Javascript
node.js中对Event Loop事件循环的理解与应用实例分析
2020/02/14 Javascript
python解析xml模块封装代码
2014/02/07 Python
利用pyinstaller或virtualenv将python程序打包详解
2017/03/22 Python
python通过pip更新所有已安装的包实现方法
2017/05/19 Python
Python递归实现打印多重列表代码
2020/02/27 Python
Python configparser模块配置文件过程解析
2020/03/03 Python
python使用yaml 管理selenium元素的示例
2020/12/01 Python
介绍一下JNDI的基本概念
2013/07/26 面试题
应聘美工求职信
2013/11/07 职场文书
公益活动邀请函
2014/02/05 职场文书
党支部换届选举方案
2014/05/08 职场文书
专家推荐信模板
2014/05/09 职场文书
广告宣传策划方案
2014/05/21 职场文书
小学国旗下的演讲稿
2014/08/28 职场文书
2014年党员自我评议总结
2014/09/23 职场文书
群众路线剖析材料怎么写
2014/10/09 职场文书
2014年个人思想工作总结
2014/11/27 职场文书
2016十一国庆节感言
2015/12/09 职场文书
python之json文件转xml文件案例讲解
2021/08/07 Python