VUE基本指令

本文对Vue的基本指令做一个简单的理解

  • v-model
  • v-bind
  • v-html
  • v-text
  • v-if
  • v-show
  • v-for
  • v-on:click
v-model
  • 用法

     v-model 指令在表单 、 及 元素上创建双向数据绑定。它负责监听用户的输入事件
     以更新数据。
    
  • 示例

    此处将checkbox与use值双向绑定起来,use的改变会影响checkbox的状态
    
<! DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>v-bind的使用</title>

</head>
<style>
.class1{
background:#444;
color:#eee;
}
</style>

<body>
<!-- Vue引用也可放在body中-->
<script src="F:\Html\vue\vue.js"></script>
<div id="vbindid">
<label for="r1">修改背景色</label><input type="checkbox" v-model="use" id="r1"></input>
<br>
<div v-bind:class="{'class1':use}">
 v-bind:class 指令
</div>
</div>

<script>
new Vue({
  el:"#vbindid",
  data:{
  use:false
  }

})

</script>
</body>
</html>

运行效果:
在这里插入图片描述

在这里插入图片描述

v-bind
  • 用法

    在html代码中,v-bind绑定的是动态的表达式,而非固定的字符串,
    在v-bind后,就可以     动态获取数据。
    
    可以将v-bind理解为: 被v-bind修饰的都是动态获取的值。 
    而非被v-bind修饰的,仅仅是一个字符串
    
    例如 :bind todo="item"; 在此例子中 item是一个表达式,
    item可以在其他地方动态变 化;todo="item"   在此例子中,item是一个字符串,
    不代表其他任何意义。
    
<!-- 绑定一个属性 -->
<img v-bind:src="imageSrc">

<!-- 动态属性 (2.6.0+支持) -->
<button v-bind:[key]="value"></button>

<!-- 缩写 -->
<img :src="imageSrc">

<!-- 内联字符串拼接 -->
<img :src="'/path/to/images/' + fileName">

<!-- class 绑定 -->
<div :class="{ red: isRed }"></div>
<div :class="[classA, classB]"></div>
<div :class="[classA, { classB: isB, classC: isC }]">

<!-- style 绑定 -->
<div :style="{ fontSize: size + 'px' }"></div>
<div :style="[styleObjectA, styleObjectB]"></div>

<!-- 绑定一个有属性的对象 -->
<div v-bind="{ id: someProp, 'other-attr': otherProp }"></div>

<!-- 通过 prop 修饰符绑定 DOM 属性 -->
<div v-bind:text-content.prop="text"></div>

<!-- prop 绑定,“prop”必须在 my-component 中声明-->
<my-component :prop="someThing"></my-component>

<!-- 通过 $props 将父组件的 props 一起传给子组件 -->
<child-component v-bind="$props"></child-component>

  • 示例

    pre 元素可定义预格式化的文本。被包围在 pre 元素中的文本通常会保留空格
    和换行符。而文本也会呈现为等宽字体。
    参数在指令后以冒号指明。例如, v-bind 指令被用来响应地更新 HTML 属性:
    
<! DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>v-bind的使用</title>
<script src="F:\Html\vue\vue.js"></script>
</head>

<body>

<div id="app">
    <pre><a v-bind:href="url">百度</a></pre>
</div>

<script>
new Vue({
  el:'#app',
  data:{
  url:'https:www.baidu.com'
  
  }

})
</script>

</body>
</html>

运行效果:
在这里插入图片描述
点击进入百度首页

v-html
  • 用法

    用于输出 html 代码
    
  • 示例

<! DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>html使用</title>
<script src="F:\Html\vue\vue.js"></script>
</head>
<body>
<div id="htmlid">
 <div v-html="message"></div>//注意这里
</div>

<script>
new Vue({
 el:'#htmlid',
 data:{
 message:'<h1>插值</h1>'
 }

})

</script>
</body>
</html>

运行效果:

插值
v-text
  • 用法

    是用于输出文本       
    
  • 示例

<! DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>v-bind的使用</title>
<script src="F:\Html\vue\vue.js"></script>
</head>

<body>
<div id="app">
<p v-text="message"></p>
</div>

<script>
new Vue({
  el:"#app",
  data:{
  message:'这是一条信息'
  }



})

</script>
</body>
</html>

运行效果:

 这是一条信息
v-if
  • 用法

    条件渲染
    v -if:根据表达式的值的真假条件,销毁或重建元素
    
  • v-if示例

<! DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>v-bind的使用</title>
<script src="F:\Html\vue\vue.js"></script>
</head>

<!--指令 -->
<body>
<div id="app"> 
<p v-if="see">你可以选择是否看到我</p>
<template v-if="ok">
<h1>标题</h1>
<p>学的不仅是技术,更是梦想</p>
</template>
</div>

<script>
 new Vue({
 el:'#app',
 data:{
 see:true,
 ok:true

 }

 })
</script>

</body>
</html>

运行效果:

 你可以选择是否看到我
 标题
 学的不仅是技术,更是梦想

如果修改为:

 data:{
 see:false,
 ok:true
 }

则为:

标题
学的不仅是技术,更是梦想
v-show
  • 用法

    条件渲染
    v-show:根据表达式之真假值,切换元素的 display CSS 属性
    v-show的功能和v-if基本一样,但是v-if有衍生的v-else-if和v-else,v-show没有
    v-show的性能比v-if要好,能用v-show就不要用v-if
    v-if是删除dom节点
    v-show是不删除dom节点,增加行级样式'display:none'
    
  • 示例

<! DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>v-bind的使用</title>
<script src="F:\Html\vue\vue.js"></script>
</head>

<body>
<div id="app">
<p v-show="statues">Hello</p>
</div>

<script>
new Vue({
  el:"#app",
  data:{
  statues:false
  }



})

</script>
</body>
</html>

运行效果:

statues:true//显示Hello
statues:true//不显示Hello
v-for
  • 用法

    遍历数组或对象
    
  • 示例

<! DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>v-bind的使用</title>
<script src="F:\Html\vue\vue.js"></script>
</head>

<body>
<div id="app">
<li class="test" v-for='(item,index) in items'>元素:{{item}}索引:{{index}}</li>
</div>

<script>
new Vue({
  el:'#app',
  data:{
  items:[1,2,3,4,5]
  }

})
 </script>

</script>
</body>
</html>

运行效果:
在这里插入图片描述

v-on
  • 用法

    作用:绑定事件
    语法:v-on:click="say" or v-on:click="say('参数', $event)"
    简写:@click="say"
    说明:绑定的事件从methods中获取
    
<!-- 方法处理器 -->
<button v-on:click="doThis"></button>

<!-- 缩写 -->
<button @click="doThis"></button>

<!-- 动态事件 (2.6.0+) -->
<button v-on:[event]="doThis"></button>

<!-- 内联语句 -->
<button v-on:click="doThat('hello', $event)"></button>

<!-- 动态事件缩写 (2.6.0+支持) -->
<button @[event]="doThis"></button>

<!-- 停止冒泡 -->
<button @click.stop="doThis"></button>

  • 示例
<! DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>v-bind的使用</title>
<script src="F:\Html\vue\vue.js"></script>
</head>

<body>
<div id="app">
   <p>{{message}}</p>
   <button v-on:click="reverseMessage">反转字符串</button>

</div>

<script>
new Vue({
  el:'#app',
  data:{
  message:'ABCD'
  },
methods:{
  reverseMessage :function(){
  this.message=this.message.split('').reverse().join('')
  
  }
}
})

</script>

</body>
</html>

运行效果:
点击按钮后ABCD 改为 DCBA

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值