新人成长之入门Vue.js常用指令介绍(一)

写在前面

作为一个刚步入职场工作的新人,对于公司中所用的技术和框架基本上不懂,只能从最基础的开始做起,进入公司接触的第一个框架就是前端框架Vue.js,几个功能做下来,觉得Vue.js首先学习起来真的非常简单,用起来也是非常的方便,通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。它不仅易于上手,还便于与第三方库或既有项目整合,足以应付任何规模的应用。

如果你之前已经习惯了用jQuery、JS操作DOM,学习Vue.js时请先抛开手动操作DOM的思维,因为Vue.js是数据驱动的,你无需手动操作DOM。它通过一些特殊的HTML语法,将DOM和数据绑定起来。一旦你创建了绑定,DOM将和数据保持同步,每当变更了数据,DOM也会相应地更新。

当然了,在使用Vue.js时,你也可以结合其他库一起使用,比如jQuery、JS等等。

这是我第一次在博客上对于自己的学习成长经历进行记录,先从最简单的一些基本指令记起,下面开始

Vue.js介绍

Vue (读音 /vju?/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。

Vue.js安装

我们可以在 Vue.js 的官网上直接下载 vue.min.js 并用 <script> 标签引入,官网链接:https://cn.vuejs.org/v2/guide/installation.html

Vue.js环境详细安装教程可参考https://blog.csdn.net/dreamzuora/article/details/78911664


声明式渲染第一个实例“helloword”

无论学习哪一种语言,第一步都会是用“helloword”打开这门语言的大门,Vue.js也是一样,看看是如何在Vue.js中输出“helloword”的。

<div id="app">
  {{ message }}
</div>
helloword声明式渲染html部分
var app = new Vue({
  el: '#app',
  data: {
    message: 'Hello word!'
  }
})
helloword声明式渲染JS部分

作用:简化字符串的拼接。

注意: 变化的部分使用{{}} 和Vue.js的v-text效果一样定义

 

常用指令总结

1.将上面helloword中的div中的内容换做input框的话,可实现双向绑定,input框中的你输入的内容与JS部分中的data中的message绑定

eg:

双向绑定v-model指令HTML部分
双向绑定v-model指令JS部分

2.v-if 条件渲染指令,根据其后表达式的bool值进行判断是否渲染该元素;

eg:

<div id="example01">
    <p v-if="male">Male</p>
    <p v-if="female">Female</p>
    <p v-if="age>25">Age:{{age}}</p>
    <p v-if="name.indexOf('lin')>0">Name:{{name}}</p>
</div>
v-if指令html部分
var vm= new Vue({
        el:"#example01",
        data:{
            male:true,
            female: false,
            age:29,
            name:'colin'
        }
    })
v-if指令JS部分

v-if指令只渲染他身后表达式为true的元素;在这里引入v-show指令,因为二者的区别是v-show指令会渲染他身后表达式为false的元素,这样的元素上会添加css代码:style="display:none"; 将上面v-if的实例代码改为v-show

3.v-show 与v-if类似,只是会渲染其身后表达式为false的元素,而且会给这样的元素添加css代码:style="display:none";

4.v-else 必须跟在v-if/v-show指令之后,不然不起作用;如果v-if/v-show指令的表达式为true,则else元素不显示;如果v-if/v-show指令的表达式为false,则else元素显示在页面上

eg:

<div id="app">
<h1 v-if="age >= 25">Age: {{ age }}</h1>
<h1 v-else>Name: {{ name }}</h1>
<hr>
<h1 v-show="name.indexOf('cool') = 0">Name: {{ name }}</h1>
<h1 v-else>Sex: {{ sex }}</h1>
</div>
v-else指令html部分
<script>
    var vm = new Vue({
        el: '#app',
        data: {
            age: 21,
            name: 'keepcool',
            sex: 'Male'
        }
    })
</script>
v-else指令JS部分

5. v-for 渲染循环列表,类似JS的遍历,用法为 v-for="item in items", items是数组,item为数组中的数组元素

<div id="example03">
    <table>
        <thead>
        <tr>
            <th>Name</th>
            <th>Age</th>
            <th>position</th>
        </tr>
        </thead>
        <tbody>
        <tr v-for="person in people">
            <td>{{ person.name  }}</td>
            <td>{{ person.age  }}</td>
            <td>{{ person.position}}</td>
        </tr>
        </tbody>
    </table>
</div>
v-for指令html部分
<script>
    var vm = new Vue({
        el: '#example03',
        data: {
            people: [{
                name: 'lebron',
                age: 33,
                position: 'SF'
            }, {
                name: 'wade',
                age: 34,
                position: 'SG'
            }, {
                name: 'paul',
                age: 32,
                position: 'PG'
            }, {
                name: 'anthony',
                age: 34,
                position: 'SF'
            }]
        }
    })
</script>
v-for指令的JS部分

6.v-bind  这个指令用于响应地更新 HTML 特性,比如绑定某个表格中的数据或者某个class元素或元素的style样式。该指令也可以简写为一个“:

eg:

<template>
    <el-table
      :data="tableData"
      style="width: 100%">
      <el-table-column
        prop="date"
        label="日期"
        width="180">
      </el-table-column>
      <el-table-column
        prop="name"
        label="姓名"
        width="180">
      </el-table-column>
      <el-table-column
        prop="address"
        label="地址">
      </el-table-column>
    </el-table>
  </template>
v-bind指令的html部分
<script>
    export default {
      data() {
        return {
          tableData: [{
            date: '2018-08-31',
            name: 'lebron',
            address: 'LA'
          }, {
            date: '2018-08-31',
            name: 'wade',
            address: 'Miami'
          }, {
            date: '2018-08-31',
            name: 'paul',
            address: 'Houston'
          }, {
            date: '2018-08-31',
            name: 'anthony',
            address: 'Houston'
          }]
        }
      }
    }
  </script>
v-bind指令JS部分

分页功能中当前页数高亮的效果,可以使用bind指令,绑定该元素的style样式

7.v-on  用于监听指定元素的DOM事件,比如点击事件。该指令可简写为“@”,以监听点击事件为例

eg:

<el-form :model="numberValidateForm" ref="numberValidateForm" label-width="100px" class="demo-ruleForm">
  <el-form-item
    label="年龄"
    prop="age"
   >
    <el-input type="age" v-model.number="numberValidateForm.age" auto-complete="off"></el-input>
  </el-form-item>
  <el-form-item>
    <el-button type="primary" @click="submitForm('numberValidateForm')">提交</el-button>
    <el-button @click="resetForm('numberValidateForm')">重置</el-button>
  </el-form-item>
</el-form>
v-on指令HTML部分
<script>
  export default {
    data() {
      return {
        numberValidateForm: {
          age: ''
        }
      };
    },
    methods: {
      submitForm(formName) {
            alert('submit!');
        });
      },
      resetForm(formName) {
        this.$refs[formName].resetFields();
      }
    }
  }
</script>
v-on指令JS部分

这次是对于Vue.js中的最基本的常用指令进行总结,其实之前学习过JS和HTML的朋友,对于这方面的理解是非常快的,只不过是一些写法上面的不同,语法都会是大同小异的。

希望大家这篇博客中有什么错误的地方帮我指出来,一方面对我自己是一种进步,一方面也不会让错误的地方误导了看到这篇博客的朋友,谢谢!!!

 

posted @ 2018-08-31 17:49  唐大博  阅读(543)  评论(1编辑  收藏  举报