vue-learning:2 - template - directive
指令 directive
在上一节我们知道,VUE的template模板通过VUE指令API实现与页面的视图层联系。所以本节将聚集在实现视图层交互的VUE指令系统directive的基础使用。
我们先回顾下,原生HTML元素的一个结构包含哪些内容?
<button id="example" class="example" style="display:none" disabled onclick="handleClick"> content </button>
html元素包括:
标签:开始标签 <button> 结束标签 </button>
特性及值: id="example" class="example" style="display:none"
disabled (值类型为布尔值时,出现为true,元素中没有则为false)
属性及值: display:none
事件绑定: onclick="handleClick"
内容: content
template中HTML元素写法与原生完全一样。不同的是当需要vue去控制元素某些部位的值时需要采用vue指令去绑定该值。
<button v-if="true" id="example" v-bind:class="{example:true}" v-bind:style="[baseStyle]" v-bind:disabled="true" v-on:click.stop="handleClick">{{ content }}</button>
所以我们根据html的元素结构来学习对应的vue指令
在上面的这个例子,指令有四种形态,如v-if,v-bind:disabled,v-on:click.stop,{{ }}。
- 不带参数指令,一般控制着整个html元素的显示,如
v-if/v-show根据值真假控制元素的可见和不可见,v-for用于循环列表元素的批量生成。 - 带参数的指令
v-bind绑定HMTL元素的特性,控制着该特性的表现,如disabled值为真,则disabled特性生效,按钮禁用。 - 带参数和事件修饰符的指令
v-on:click.stop,事件修饰符只出现在事件绑定指令v-on上。
disabled称为指令v-bind的参数,
click称为指令v-on的参数,stop称为指令v-on的事件修饰符。
{{ }}插值,严格上不算VUE标准指令,我归结在一起也是方便自己记忆而已。
所以对vue指令的可以总结为以下几类:
- 绑定元素内容的指令:
{{}}-输出字符串文本作为内容的插值,v-html- 输出DOM节点作为内容的指令 - 绑定元素显示的指令:
v-if/else,v-show,v-for - 绑定元素特性的指令:
v-bind特性名称作为指令的参数 - 绑定元素事件的指令:
v-on事件名作为指令参数,及其相关修饰符 - 表单元素实现值双向绑定的指令:
v-model
后面,我们学习每一个指令的具体知识点。
vue-learning:2 - template - directive的更多相关文章
- vue从入门到进阶:自定义指令directive,插件的封装以及混合mixins(七)
一.自定义指令directive 除了核心功能默认内置的指令 (v-model 和 v-show),Vue 也允许注册自定义指令.注意,在 Vue2.0 中,代码复用和抽象的主要形式是组件.然而,有的 ...
- vue报错:Component template should contain exactly one root element. If you are using v-if on multiple elements, use v-else-if to chain them instead.
在.vue文件中引入了 element-ui 的 table 和 pagination 组件后,报错:Component template should contain exactly one roo ...
- 小白学习VUE第二课:环境搭建 VUE Node.js VSCode template模板
环境搭建 VUE Node.js VSCode template模板: 首先安装node:http://www.runoob.com/nodejs/nodejs-install-setup.html ...
- Vue.js:轻量高效的前端组件化方案
转发一篇尤老师对vue.js的介绍,了解vue.js的来龙去脉.不过现在已经是2.0了,也有添加一些新的东西,当然有些东西也改了. Vue.js:轻量高效的前端组件化方案 Vue.js 是我在2014 ...
- Vue系列:如何将百度地图包装成Vue的组件
主要分解为如下步骤: (1)在html文件中引入百度地图, <script type="text/javascript" src="http://api.map.b ...
- Vue.js:轻量高效的前端组件化方案(转载)
摘要:Vue.js通过简洁的API提供高效的数据绑定和灵活的组件系统.在前端纷繁复杂的生态中,Vue.js有幸受到一定程度的关注,目前在GitHub上已经有5000+的star.本文将从各方面对Vue ...
- 组件嵌套时报:Component template should contain exactly one root element. If you are using v-if on multiple elements, use v-else-if to chain them instead.
在组件嵌套的过程中,报了一个错误: 这里报错的原因是:vue的组件(模板)只能有一个根节点,即.vue文件中的<template>标签下只能有一个子元素. 因此,建议大家在写.vue组件的 ...
- 从壹开始前后端分离 [ Vue2.0+.NET Core2.1] 二十二║Vue实战:个人博客第一版(axios+router)
前言 今天正式开始写代码了,之前铺垫了很多了,包括 6 篇基础文章,一篇正式环境搭建,就是为了今天做准备,想温习的小伙伴可以再看看<Vue 基础入门+详细的环境搭建>,内容很多,这里就暂时 ...
- 从壹开始前后端分离 [ Vue2.0+.NET Core2.1] 二十三║Vue实战:Vuex 其实很简单
前言 哈喽大家周五好,马上又是一个周末了,下周就是中秋了,下下周就是国庆啦,这里先祝福大家一个比一个假日嗨皮啦~~转眼我们的专题已经写了第 23 篇了,好几次都坚持不下去想要中断,不过每当看到群里的交 ...
随机推荐
- yum install mysql-devel
linux系统在装mysql相关的包时要先装mysql-deval,这个包包含mysql的相关配置和环境组件 执行yum install mysql-deval
- @codeforces - 715E@ Complete the Permutations
目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定两个排列 p, q,他们中的有些位置被替换成了 0. 两个排 ...
- hackerrank---Sets - Symmetric Difference
题目链接 集合操作 附上代码: M = int(input()) m = set(map(int, raw_input().strip().split())) N = int(input()) n = ...
- hdu2516 博弈
找规律,发现时斐波那契数列:打表上. #include<stdio.h> #include<string.h> #define maxn 2147483647 __int64 ...
- Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十六章:实例化和截头锥体裁切
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十六章:实例化和截头锥体裁切 代码工程地址: https://git ...
- iOS 避免循环导入及自定义控件delegate和protocol的相互引用的问题
在OC中一般来说ClassA同ClassB想要避免重复import的话两种方案 1. 若ClassA.h 头文件中已经导入了ClassB,即#import "ClassB.h" , ...
- oracle函数 TO_DATE(X[,c2[,c3]])
[功能]将字符串X转化为日期型 [参数]c2,c3,字符型,参照to_char() [返回]字符串 如果x格式为日期型(date)格式时,则相同表达:date x 如果x格式为日期时间型(timest ...
- JavaScript 开发者都应该知道的十个概念
1. 原始值和引用值(Value vs. Reference) 理解对象.数组和函数是如何复制和传递到函数中的.了解引用值是被复制了什么,理解原始值是通过复制值来进行复制和传递的. 简析:ECMASc ...
- tensorflow学习笔记(三十四):Saver(保存与加载模型)
Savertensorflow 中的 Saver 对象是用于 参数保存和恢复的.如何使用呢? 这里介绍了一些基本的用法. 官网中给出了这么一个例子: v1 = tf.Variable(..., nam ...
- python2和python3一些不同
文件写法: #python2fp=file(filepath,'wb')#python3# fp = open(filepath, 'wb') 关于乱码问题: #python2 #coding=utf ...