欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

一个例子轻松学会Vue.js

程序员文章站 2023-10-17 22:17:52
大家都知道vue.js是中国人创造出来的,简单易用,所以必须要支持一下 vue采用的mvvm设计模式 也就是说model和view绑定 model改变,view的内...

大家都知道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组件学习教程进行学习。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。