新人成长之入门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的朋友,对于这方面的理解是非常快的,只不过是一些写法上面的不同,语法都会是大同小异的。

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

上一篇:Vue.js常用指令:v-bind


下一篇:Orchard 刨析:导航篇