Vue语法

811 阅读3分钟

组成部分

  1. .vue文件有三个部分组成 <temliate>、<script>、 <style>
  • template是模板,这里面是XML语言,其标签必须是闭合的。原因:因为XML更加严谨,降低编译器的编写复杂度
  • script标签是该组件Vue的实例,data使用函数的形式,防止多次调用的对象污染
<script>
  export default{
      data(){
      m:0
      }
  }
</script>
  • style是css样式,可以使用scss

Vue语法

1,内容展示语法:插值、v-text、v-html、v-pre

  • 插值语法:使用表达式插入已有的数据、数据的处理、函数的返回 例:{{xxx}}插入data、或omputed数据中

注意:如果值为null、undefined,则vue不会将它们渲染到视图中

  • v-html:插入html标签

<div v-html="<strong>hi</strong>"></div> 插入一段strong标签

  • v-pre:preview预览,不对语句做任何编译。

<div v-pre>{{ n }}</div>就是简单的 {{n}} 字符串。

  • v-text

<div v-text="n+2"></div>=<div>{{n+1}}</div>

2,绑定属性:v-bind:

  • 语法:v-bind:参数='值'
  • 绑定属性:<img v-bind:src='x'/>,冒号后面的值默认是JS表达式,所以这里的x是JS表达式,会先求x的变量然后赋值给src。
  • v-bind简写: ,<img v-bind:src='x'/>=<img :src='x'/>
  • 绑定一个对象:<div :style="{border:1px solid red , height:100}"></div>vue中的CSS样式单独单位默认是px

3,绑定事件:v-on:

  • 语法:v-on:事件类型='处理函数',处理函数有3种类型,函数名、JS表达式、函数调用态
  • 处理函数名:<button v-on:click='add'>按钮</button>点击后触发add函数。
  • 处理js表达式:<button v-on:click='n+=1'>按钮</button>
  • 处理函数调用态:<button v-on:click='add(1)'>按钮</button>这里add(1)并不是直接调用,点击之后才会调用add(1) 。 注意如果返回的如果是一个函数,而使用者希望把这个返回的函数作为处理函数的话,Vue并不能实现这个功能。
  • 简写:v-on简写为@,<button v-on:click='add'>按钮</button>=<button @click='add'>按钮</button>

4,条件判断:v-if、v-else-if、v-else

根据表达式的值的真假条件渲染元素。在切换时元素及它的数据绑定 / 组件被销毁并重建。如果元素是 <template> ,将提出它的内容作为条件块。

注意v-else-if、v-else的使用前提的是:前一兄弟元素必须有 v-if 或 v-else-if。

5,循环:v-for(value,key) in object/array

  • value就是每一项的值;key意为关键字:在对象中是每一项的属性名,而在array中则是索引 注意:使用循环时一定要在后面绑定一个 key属性,这个key和上面所说的key不是一个意思,这个绑定的key属性可以是数组的索引,也可以是唯一的id(key属性的值必须是唯一的),如::key='u.id',最好别用数组的索引作为为key的值,某些情况有bug。
  1. 显示、隐藏:v-show
  • 根据表达式的值的真假条件,显示与隐藏元素。
    show?
  • -v-show与v-if的区别:
v-show:通过改变元素css样式中的display来切换显示与隐藏。

v-if:通过是否渲染元素到html结构中来实现显示与隐藏。

如果在实际使用上显示与隐藏的切换比较频繁,使用v-show可以节省性能;反之是用v-if比较合适。

注意 这个指令对DOM元素的渲染是通过改变display为none或其他来实现的。注意不是所有看得见的元素都是 display:block;table的display是table;li的display是list-item。

Vue修饰符

1,v-on

.{keyCode|keyAlias} 指定按键(可以用keyCode指定,也可以通过Vue提供的按键别称指定)被按下时触发事件
.stop禁止事件传播(冒泡或者捕获)
.prevent禁止默认事件

示例:

<a @click.prevent>click</a> <!--禁止a标签的默认行为-->
<div @click.stop=add><div> <!--阻止事件传播\冒泡-->
<a @click.stop.prevent=add><a> <!--阻止事件传播\冒泡及默认行为-->