vue指令

v-html语法可以把data里的HTML标签和类容解析到网页上比如:

data: {
    message: '<em>菜鸟教程</em>'
      }

输出 

菜鸟教程 //网页显示斜体

什么是v-bind指令(缩写:href="url")

v-bind可以绑定属性比如:

html代码
<a v-bind:href="aaa">菜鸟教程</a>
vue代码
data: {
    aaa : "http://www.baidu.com"
  }

给a标签绑定上了跳转百度的连接

v-bind修饰符

<!-- 阻止单击事件冒泡 -->
<a @click.stop="handle"></a>
<!-- 提交事件不再重载页面 -->
<form @submit.prevent = "handle"></form>
<!-- 修饰符可以串联 -->
<a @click.stop.prevent="handle"></a>
<!-- 添加事件侦听器时使用事件捕获模式 -->
<div @click.capture="handle"></div>
<!-- 只当事件在该元素本身(而不是在子元素)触发时触发回调 -->
<div @click.self="handle"></div>
<!-- 只触发一次,组件同样适用 -->
<div @click.once="handle"></div>


<!-- 在表单元素上监听键盘事件时,还可使用按键修饰符 -->
<input @keyup.13="submit">

也可以自己配置具体按键
Vue.config.keyCode.f1 = 112    // 全局定义后,就可以使用@keyup.f1

<!-- Shift + S -->
<input @keyup.shift.83 = "handleSave">
<!-- Ctrl + Click -->
<div @click.ctrl="doSomething"></div>

 

 

什么是v-if指令

<div id="app">
    <p v-if="seen">现在你看到我了</p>
</div>
    
<script>
new Vue({
  el: '#app',
  data: {
    seen: true
  }
})
</script>

当data.seen中的值为true时显示文字

现在你看到我了

当data.seen中的值为false时显示空

 

 

什么是v-model指令
v-model 指令用来在 input、select、textarea、checkbox、radio 等表单控件元素上创建双向数据绑定,根据表单上的值,自动更新绑定的元素的值。其他元素 是没有任何效果的。
比如:
<div id="app">
    <p>{{ message }}</p>
    <input v-model="message">
</div>
    
<script>
new Vue({
  el: '#app',
  data: {
    message: 'Runoob!'
  }
})
</script>

p标签里的类容会随着input框里的数据变动而变动

.lazy:   用于控制数据同步的时机

v-model默认是在input事件中同步输入框的数据,使用修饰符.lazy会转变在change事件中同步。

<input type="text" v-model.lazy="message"> // 这时message并不是实时变化的,而是失焦或按回车键才会更新。

.number 可以将输入转换成Number类型

<input type="number" v-model.number="message">

.trim 可以自动过滤输入的首尾空格

<input type="text" v-model.trim="message">
 
什么是v-on指令(缩写@click="doSomething")
经过v-on绑定的属性可以直接执行js代码,也可以去vue中methods中寻找函数执行。
<!DOCTYPE html>
<html lang="zh_CN">
<head>
    <meta charset="UTF-8">
    <title>dome9</title>
</head>
<body

    <div id ="app">
        <!-- 'v-on==@'  直接执行js代码 -->
        <button v-on:click='count-=1'>每次点击-1</button>
        <!-- '@是v-on的简写' methods中寻找add函数执行 -->
        <button @click='add(10)'>每次点击+10</button>
        <p>当前数值为:{{count}}</p>
    </div>

</body>

    <script src="https://cdn.jsdelivr.net/npm/vue"></script>
    <script>
     //创建Vue实例
     var vm = new Vue({
        el: '#app',
        data: {
            count: 0
        },
        methods: {
            add(num){
                this.count += num
            }
        }
     });
    </script>
</html>

结果

 

什么是 v-if,v-else-if指令
和JavaScript中的if,if-else一样
<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>
new Vue({
  el: '#app',
  data: {
    type: 'C'
  }
})
</script>

输出

c

 注意: v-else 、v-else-if 必须跟在 v-if 或者 v-else-if之后。

 

什么是 v-show指令

 

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Vue 测试实例 - 菜鸟教程(runoob.com)</title>
<script src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script>
</head>
<body>
<div id="app">
    <h1 v-show="ok">Hello!</h1>
</div>
    
<script>
new Vue({
  el: '#app',
  data: {
    ok: true
  }
})
</script>
</body>
</html>
当data.ok=true时显示"hello"data.ok=false时隐藏"hello",与v-if的区别: https://www.jianshu.com/p/7af8554d8f08

 

什么是v-for指令
 
v-for 指令需要以 site in sites 形式的特殊语法, sites 是源数据数组并且 site 是数组元素迭代的别名。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Vue 测试实例 - 菜鸟教程(runoob.com)</title>
<script src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script>
</head>
<body>
<div id="app">
  <ol>
    <li v-for="site in sites">//循环data.sites.name数组中的所有的数据
      {{ site.name }}
    </li>
  </ol>
</div>
<script>
new Vue({
  el: '#app',
  data: {
    sites: [
      { name: 'Runoob' },
      { name: 'Google' },
      { name: 'Taobao' }
    ]
  }
})
</script>
</body>
</html>

结果

1. Runoob
2. Google
3. Taobao

 

 v-pre

 

 

 资源来自网络,整理方便学习
posted @ 2020-12-01 18:02  听声是雨  阅读(116)  评论(0编辑  收藏  举报