新人成长之入门Vue.js指令介绍
Posted 唐林博
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了新人成长之入门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>
var app = new Vue({
el: ‘#app‘,
data: {
message: ‘Hello word!‘
}
})
作用:简化字符串的拼接。
注意: 变化的部分使用{{}} 和Vue.js的v-text效果一样定义
常用指令总结
1.将上面helloword中的div中的内容换做input框的话,可实现双向绑定,input框中的你输入的内容与JS部分中的data中的message绑定
eg:
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>
var vm= new Vue({
el:"#example01",
data:{
male:true,
female: false,
age:29,
name:‘colin‘
}
})
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>
<script> var vm = new Vue({ el: ‘#app‘, data: { age: 21, name: ‘keepcool‘, sex: ‘Male‘ } }) </script>
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>
<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>
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>
<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>
分页功能中当前页数高亮的效果,可以使用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>
<script> export default { data() { return { numberValidateForm: { age: ‘‘ } }; }, methods: { submitForm(formName) { alert(‘submit!‘); }); }, resetForm(formName) { this.$refs[formName].resetFields(); } } } </script>
这次是对于Vue.js中的最基本的常用指令进行总结,其实之前学习过JS和HTML的朋友,对于这方面的理解是非常快的,只不过是一些写法上面的不同,语法都会是大同小异的。
希望大家这篇博客中有什么错误的地方帮我指出来,一方面对我自己是一种进步,一方面也不会让错误的地方误导了看到这篇博客的朋友,谢谢!!!
以上是关于新人成长之入门Vue.js指令介绍的主要内容,如果未能解决你的问题,请参考以下文章