学习Vue基础(2)

92 阅读2分钟

Vue的模块语法

插值操作

即是如何将数据显示在页面的操作,包括:

  1. {{}}:双大括号(Mustache语法),将data中自定义的数据,插入显示到HTML到;
  2. v-pre:跳过这个元素和它的子元素的编译过程。可以用来显示原始 Mustache 标签。跳过大量没有指令的节点会加快编译;
  3. v-html:相当于js中的innerHtml,可动态渲染任意的HTML元素,需要注意有可能会导致XSS攻击;
  4. v-text:它的作用和Mustache比较相似,都是用于数据显示在界面中;
  5. v-cloak:浏览器可能会直接显示未编译的Mustache标签,所以就可以使用v-cloak避免这个问题;

显示隐藏操作

  1. v-if:根据条件渲染或销毁元素;
  2. v-show:根据条件显示或隐藏元素,与v-if不同,控制的是CSS属性中的display
  3. v-on:为元素绑定方法,v-on:click可以简写成@click
...
<button v-on:click="toggle()">test</button>
// <button @click="toggle()">test</button>
...
...
<script>
  new Vue({
    el: '#app',
    data: {},
    methods: {
      toggle() {
          // 方法内容
      }
    }
  })
</script>
...

属性绑定

Vue除了提供内容上的指令外,还提供了操作属性的指令

v-bind:如果遇到需要绑定标签原始属性或自定义属性时,那么就需要v-bind进行动态绑定;

...
<a v-bind:href="href">Vue官网</a>
...
...
<script>
  new Vue({
    el: '#app',
    data: {
      href: 'https://vuejs.org/'
    }
  })
</script>
...
// v-bind:href 可以简写成 :href

循环操作

v-for:item in items形式;

...
<div v-for="(item, index) in items">{{index}} -- {{item}}</div>
...
...
<script>
  const vm = new Vue({
    el: '#app',
    data: {
      items: ['zhangsan', 'lisi', 'wangwu']
    }
  })
</script>
...

v-key:搭配v-for使用,因为循环添加多个相同的节点后,如果需要新增一个节点,那么此时默认的算法会是想新的节点覆盖旧的节点,然后顺延操作后面的节点,这样效率太低,所以就需要一个唯一标识符,这样就可以直接定位插入的节点位置,高效更新。可以简写成:key

...
<div v-for="(item, index) in items" v-key="index">{{index}} -- {{item}}</div>
<div v-for="(item, index) in items" :key="index">{{index}} -- {{item}}</div>
...