一、vue指令

1.v-text

  v-text是用于操作纯文本,它会替代显示对应的数据对象上的值。当绑定的数据对象上的值发生改变,插值处的内容也会随之更新。注意:此处为单向绑定,数据对象上的值改变,插值会发生变化;但是当插值发生变化并不会影响数据对象的值。其中:v-text可以简写为{{}},并且支持逻辑运算。

实例如下所示:

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>v-text实例</title>
<script src="../node_modules/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">{{message}}</div> <script>
var vm = new Vue({
el: '#app',
data: {
message: 'hello world'
}
})
</script>
</body>
</html>

运行效果如下所示:

2.v-html

  v-html用于输出html,它与v-text区别在于v-text输出的是纯文本,浏览器不会对其再进行html解析,但v-html会将其当html标签解析后输出。

实例如下所示:

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>v-html实例</title>
<script src="../node_modules/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">
<p v-html="html"></p>
</div> <script>
var vm = new Vue({
el: '#app',
data: {
html: "<b style='color:red'>v-html的实例</b>"
}
})
</script>
</body>
</html>

运行效果如下所示:

3.v-model

  v-model通常用于表单组件的绑定,例如input,select等。它与v-text的区别在于它实现的表单组件的双向绑定,如果用于表单控件以外标签是没有用的。

实例如下所示:

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>v-model实例</title>
<script src="../node_modules/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">
<input type="text" v-model="message" placeholder="输入........">
<p>输出的内容是: {{message}}</p>
</div> <script>
var vm = new Vue({
el: '#app',
data: {
message: ''
}
})
</script>
</body>
</html>

运行效果如下所示:

4.v-bind

   v-bind  主要用于属性绑定,比方你的class属性,style属性,value属性,href属性等等,只要是属性,就可以用v-bind指令进行绑定。v-bind的缩写是 :属性名

实例如下所示:

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<script src="../node_modules/vue/dist/vue.js"></script>
</head> <style type="text/css">
.bg{
width: 200px;
height: 200px;
background-color: red;
}
</style> <body>
<div id="app">
<div :class="bg"></div>
</div> <script>
var vm = new Vue({
el: '#app',
data:{
bg:"bg"
}
})
</script> </body>
</html>

效果图如下所示:

5.v-cloak

  v-cloak是用来解决刷新或者加载出现闪烁(显示变量),这个标签的特性在于它会在vue实例编译结束后从绑定的html元素上移除。通常情况下和下面示例的样式display: none一起使用的。代码如下所示:

 <template>
<div v-cloak>
{{message}}
</div>
</template> <script type="text/ecmascript-6">
export default {
name: "VCloak",
data() {
return {
message: 'v-cloak示例'
}
}
}
</script> <style lang="stylus" rel="stylesheet/stylus" scoped>
[v-cloak] {
display: none;
}
</style>

  这个示例在浏览器运行不会起到任何作用的额,只有在那些网速较慢,vue.js还没有加载完成的时候,页面才会显示我们的{{message}}字样,直到创建实例,编译模板时,dom才会被替换的,所以这个过程屏幕会有闪动。

6.v-pre

  在模板中跳过vue的编译,直接输出原始值。就是在标签中加入v-pre就不会输出vue中的data值了。

实例如下所示:

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="../node_modules/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">
<span v-pre>这不会被编译 + {{msg}}</span>
</div> <script>
var vm = new Vue({
el:'#app',
data: {
msg: 'Hello World!'
}
})
</script>
</body>
</html>

运行效果如下所示:

7.v-once

  通过使用 v-once 指令,执行一次性的插值【当数据改变时,插值处的内容不会继续更新】

实例如下所示:

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="../node_modules/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">
<p>{{msg}}</p>
<p>v-once:当数据改变时,插值处的内容不会更新</p>
<span v-once>{{msg}}</span>
</div> <script>
var vm = new Vue({
el: '#app',
data: {
msg: 'hello world'
}
})
</script>
</body>
</html>

运行效果如下所示:

8.v-show

   v-show指令是用来控制dom元素显示和隐藏的
  v-if与v-show的区别(经常会被问到)
  • 相同点:v-if与v-show都可以动态控制dom元素显示隐藏
  • 不同点:v-if显示隐藏是将dom元素整个添加或删除,而v-show隐藏则是为该元素添加css--display:none,dom元素还在。

实例如下所示:

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>显示或隐藏</title>
<script src="../node_modules/vue/dist/vue.js"></script> <style>
#bg{
width: 100px;
height: 100px;
background: red;
}
</style> </head>
<body>
<div id="box">
<input type="button" value="toggle" @click="toggle()"> <br />
<div id="bg" v-show="isShow"></div>
</div> <script>
var vm = new Vue({
el:'#box',
data:{
isShow:false
},
methods:{
toggle:function(){
this.isShow = !this.isShow;
}
}
});
</script>
</body>
</html>

运行效果如下所示:

9.v-if

   v-if指令。其作用就是根据表达式的值true或false在DOM中生成或者移除一个元素(或多个元素)。

实例如下所示:

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="../node_modules/vue/dist/vue.js"></script>
</head>
<body>
<div id="id">
<span v-if="flag">
如果flag为true则显示,false不显示!
</span>
</div> <script>
var vm = new Vue({
el:"#id",
data:{
flag:true
}
})
</script>
</body>
</html>

运行效果如下所示:

10.v-else

  使用 v-else 指令来表示 v-if 的“else 块”,但是必须紧跟在v-if或者v-else-if后面搭配一起使用

实例如下所示:

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="../node_modules/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">
<p v-if="ok">加油,你是最棒的</p>
<p v-else>你要继续加油哦</p>
</div> <script>
var vm = new Vue({
el: '#app',
data: {
ok: true
}
})
</script>
</body>
</html>

运行效果如下所示:

11.v-else-if

  v-else-if是在vue.js2.1.0中新增的,用作v-if的else-if块,可以链式的多次使用

实例如下所示:

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="../node_modules/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">
<div v-if="type === 'A'">
A
</div>
<div v-else-if="type === 'B'">
B
</div>
<div v-else-if="type === 'C'">
C
</div>
<div v-else>
Not A/B/C
</div>
</div> <script>
var vm = new Vue({
el: '#app',
data: {
type: 'E'
}
})
</script>
</body>
</html>

运行效果如下所示:

12.v-for

   v-for我们用v-for指令根据一组数据的选项列表进行渲染。v-for指令需要以item in list形式的特殊语法,items是源数据数组并且item是数组元素迭代的别名。

实例如下所示:

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>数组案例</title>
<script src="../node_modules/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">
<!--数组循环-->
<div v-for="(item,index) in list" :key="item.id">
<div>{{item.text}}-----{{index}}</div>
<span> {{item.text}}</span>
</div>
</div> <script>
//push pop shift
var vm = new Vue({
el: '#app',
data: {
list: [{
id: '00000001',
text: '注册组件'
},{
id: '00000002',
text: '对应的视图'
},{
id: '00000003',
text: '计算属性'
},{
id: '00000004',
text: '侦听器'
}
]
} })
</script>
</body>
</html>

运行效果如下所示:

v-for对象循环实例如下所示:

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>对象循环</title>
<script src="../node_modules/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">
<div v-for="(item,key,index) of userInfo">{{item}}---{{key}}---{{index}}</div>
</div> <script>
var vm = new Vue({
el: '#app',
data:{
userInfo:{
name:'美眉',
age: 18,
gender: '女',
salary: '秘密'
}
}
})
</script>
</body>
</html>

运行效果如下所示:

13.v-on

  v-on 指令用于绑定HTML事件 :v-on:click 缩写为 @click

实例如下所示:

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>给组件绑定原生事件</title>
<script src="../node_modules/vue/dist/vue.js"></script>
</head>
<body>
<div id="root">
<child @click.native="handleClick"></child>
</div> <script>
Vue.component('child',{
template: '<div>child</div>'
}) var vm = new Vue({
el: '#root',
methods: {
handleClick: function () {
alert('child')
}
}
})
</script>
</body>
</html>

运行效果如下所示:

vue指令总结(二)的更多相关文章

  1. Vue指令(二)--数组的变动

    1.数组更新数据,引起视图更新 数据驱动:数据发生变化,引起视图的变化 Vue在检测数组变化的时候,并不是直接重新渲染整个列表,而是最大化的复用Dom元素. 替换的数组中,含有相同元素的项是不会被重新 ...

  2. Vue框架(二)——Vue指令(v-once指令、v-cloak指令、条件指令、v-pre指令、循环指令)、todolist案例、Vue实例(计算、监听)、组件、组件数据交互

    Vue指令 1.v-once指令  单独使用,限制的标签内容一旦赋值,便不可被动更改(如果是输入框,可以主动修改) <!DOCTYPE html> <html lang=" ...

  3. 一个能拖动,能调整大小,能更新bind值的vue指令-vuedragx

    一. 背景说明 开发一个可自定义组件化门户配置页面,期间采用了vue框架作为前端视图引擎,作为一个刚入手vue的萌新,开发第一个功能就遇到了拦路虎.需要一个拖动并且可改变大小的容器盒子.当时查看vue ...

  4. vue 基础(二)

    Vue对象提供的属性功能 一.过滤器 过滤器,就是vue允许开发者自定义的文本格式化函数,可以使用在两个地方:输出内容和操作数据中. 1. 全局过滤器 Vue.filter 写在vm 对象外.必须要有 ...

  5. Vue模板语法(二)

    Vue模板语法(二) 样式绑定  class绑定 使用方式:v-bind:class="expression" expression的类型:字符串.数组.对象 1.2 style绑 ...

  6. Vue学习笔记【4】——Vue指令之v-on

    Vue指令之v-on v-on指令介绍 直接使用指令v-on 使用简化指令@ 绑定事件代码:@事件名="methods中的方法名称" <!DOCTYPE html> & ...

  7. 第三篇:Vue指令

    Vue指令 1.文本指令相关 v-*是Vue指令,会被vue解析,v-text="num"中的num是变量(指令是有限的,不可以自定义) v-text是原样输出渲染内容,渲染控制的 ...

  8. Vue指令及自定义指令的使用

    导航列表: 一.vue指令 二.自定义指令 一.vue指令 回到顶部    1. v-text v-text主要用来更新textContent,可以等同于JS的text属性,不会解析标签,会把标签解析 ...

  9. Vue指令总结---小白同学必看

    今天主要复习一下我们最熟悉vue指令,想要代码撸得快,就要多看书,多看看官方的文档和学习指令,学习编程是一个非常享受的过程,尤其是你不断地去解决问题,获得一项技能,实现薪水的上涨.进行Vue的指令烹饪 ...

随机推荐

  1. HDU 5245 Joyful (期望)

    题意:进行K次染色,每次染色会随机选取一个以(x1,y1),(x2,y2)为一组对角的子矩阵进行染色,求K次染色后染色面积的期望值(四舍五入). 析:我们可以先求出每个格子的期望,然后再加起来即可.我 ...

  2. js常用知识点汇总

    1.json字符串与json对象相互转化(转至:http://www.jb51.net/article/43136.htm) SON字符串: var str1 = '{ "name" ...

  3. vim 设置TAB宽度、显示行号、自动缩进、自动换行宽度

    一.vim  ~/.vimrc 二.添加如下几行:(括号中的不是,是我添加的) set shiftwidth=4          (表示每一级缩进的长度)set softtabstop=4     ...

  4. bat实现监测计算机网络连接,断网自动重启网络连接

    十月一体验了windows 10预览版之后,决定继续装回正式版,尝个鲜就好了,毕竟预览版还是不稳定,环境不是很方便. 决定装个最新正式版windows 8.1,结果问题来了,无线连接总是失败,显示网络 ...

  5. IIS 找不到.net framework 4.0/4.5程序池

    通常情况下是因为没注册造成的,也有可能跟操作系统有关系 以管理员身份运行cmd   打开我的电脑 C:\Windows\System32\cmd.exe,右键以管理员身份运行 然后:C:\WINDOW ...

  6. ARC085E(最小割规划【最大流】,Dinic当前弧优化)

    #include<bits/stdc++.h>using namespace std;typedef long long ll;const ll inf=0x3f3f3f3f;int cn ...

  7. bzoj2039: [2009国家集训队]employ人员雇佣(最小割)

    传送门 膜一下大佬->这里 不难看出这是一个最小割的模型(然而我看不出来) 我们从源点向每一个点连边,容量为他能带来的总收益(也就是他能对其他所有经理产生的贡献) 然后从每一个点向汇点连边,容量 ...

  8. [Xcode 实际操作]五、使用表格-(1)使用UITableView制作简单表格

    目录:[Swift]Xcode实际操作 本文将演示表格视图的使用方法. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKit //首先添加两个协 ...

  9. unique within an element

    从tomcat 6 升到 tomcat-7.0.12 jsp页面报: org.apache.jasper.JasperException: /XXX/XXX.jsp(59,55) Attribute ...

  10. thinkphp5使用uploadify

    uploadify flash版本下载地址:http://www.uploadify.com/wp-content/uploads/files/uploadify.zip 将解压后的文件放入项目公共文 ...