知识学习(vue基础指令)

Vue.js的指令

1.内部指令

指令是特殊的带有前缀 v-的特性。指令的值限定为绑定表达式,指令的职责就是当表达式的值改变时把某些特殊的行为应用到DOM上。

  • 基础指令:
    • v-show
    • v-else
    • v-model
    • v-repeat[1.0-]
    • v-for[1.0+]
    • v-text
    • v-el
    • v-html
    • v-on
    • v-bindß
    • v-ref
    • v-pre
    • v-cloak
    • v-if

(1) v-if

v-if指令可以完全根据表达式的值在DOM中生成或移除一个元素。如果v-if表达式赋值为false,那么对应的元素就会从DOM中移除;否则,对应元素的一个克隆将被重新插入DOM中。

代码示例:

<body class="native">
    <div id="example">
      <p v-if="greeting">
    div>
body>
<script>
    var exampleAVM2 = new Vue({
        el: '#example',
        data:{
            greeting: false
        }
    })
script>

渲染的最终效果为:

<body class="native">
    <div id="example">
    div>
    <script>...script>
body>

因为v-if是一个指令,需要将它添加到一个元素上。但是如果想切换多个元素,则可以把 元素当作包装元素,并在其上使用v-if,最终的渲染结果不会包含它。

代码示例:

<template v-if="ok">
    <h1>Titleh1>
    <p>Paragraph 1p>
    <p>Paragraph 2p>
template>

渲染的最终效果为:

<body class="native">
    <div id="example">
      <h1>Titleh1>
      <p>Paragraph 1p>
      <p>Paragraph 2p>
    div>
body>

(2) v-show

v-show指令是根据表达式的值来显示或者隐藏HTML元素,当v-show赋值为false时,元素将被隐藏。查看DOM时,会发现元素上多了一个内联样式 style=“display: none”。

代码示例:

<body>
    <input type="text" v-model="message" placeholder="edit me">
    <div id="example">
        <p v-show="greeting">Hello!p>
    div>
body>
<script>
    var exampleVM2 = new Vue({
        el:'#example',
        data:{
            greeting: false
        }
    })
script>

渲染的最终效果为

<body class="native">
    <input type="text" v-model="message" placeholder="edit me">
    <div id="example">
        <p style="display: none">Hello!p>
    div>
    <script>script>
body>

注意:v-show不支持