模版

模版语法

<div id="app">
  <!-- 这里就会展示data.msg的内容 加载的时候会出现闪烁问题(v-cloak能够解决) -->
  <div>{{msg}}</div>
  <!--元素中间的内容不展示 没有数据加载闪烁问题-->
  <div v-text="msg">这里将会被覆盖掉</div>
  <!--可以进行简单的计算-->
  <div v-text="msg+msg"></div>
  <!-- HTML 插值  将rawHtml插入到div的子元素  容易导致 XSS 攻击绝不要对用户提供的内容使用插值-->
  <div v-html="rawHtml"></div>
  <!-- v-html 和 v-text 谁在后面将会展示谁的指令内容 -->
  <div v-html="rawHtml" v-text="msg">这里将会展示msg的内容</div>
  <!-- 使用 JavaScript 表达式 -->
  <div>{{ number + 1 }}</div>
  <div>{{ ok ? 'YES' : 'NO' }}</div>
  <div>{{ msg.split('').reverse().join('') }}</div>
</div>

 <script>
   var vm = new Vue({
     el: '#app',
     data: {
       msg: 'message',
       ok: true
       rawHtml: '<h1>hello world<h1>',
     },
   });
 </script>

指令

v-bind

v-textv-html不同它俩是针对标签中的内容,v-bind 是针对标签中的属性

v-on

用于监听 DOM 事件

事件修饰符

事件修饰符可以解决到点击事件自身带的一些事件效果

  • .stop 阻止事件冒泡

  • .prevent 阻止默认事件

  • .capture 添加事件侦听器时使用事件捕获模式

  • .self 事件只作用本身,如阻止自己身上冒泡行为

  • .once 事件只触发一次

  • .left 只当点击鼠标左键时触发。

  • .right 只当点击鼠标右键时触发。

  • .middle 只当点击鼠标中键时触发。

  • .passive passive表示listener{ passive: true }永远不会调用preventDefault()`,能够改善滚动性能

按键修饰符

v-text

类型:string

v-html

类型:string

v-show

类型:boolean

v-if

类型:boolean

v-for

类型:Array | Object | number | string | Iterable (2.6 新增)

v-model

用户表单元素的双向绑定

修饰符

  • .lazy 失去焦点同步一次,相当于change 事件之后进行同步

  • .number 输入字符串转为有效的数字

  • .trim 去除首尾空格

原理

v-model 在内部为不同的输入元素使用不同的 property 并抛出不同的事件:

  • text 和 textarea 元素使用 value property 和 input 事件;

  • checkbox 和 radio 使用 checked property 和 change 事件;

  • select 字段将 value 作为 prop 并将 change 作为事件。

v-pre

v-cloak

Class与Style样式绑定

对象语法

数组语法

Last updated