Vue 基本指令
(1) v-text
- 它的作用就是里面有 HTML 代码的话也不转义直接显示
<html>
  <head>
    <title></title>
    <script src="https://unpkg.com/vue"></script>
  </head>
  <body>
    <div id="app">
      <p v-text="msg"></p>
    </div>
    <script type="text/javascript">
      var app = new Vue({
        el: '#app', //element
        data: {
          msg: '<strong>Hello</strong> Vue!'
        }
      })
    </script>
  </body>
</html>- 渲染的结果就是<strong>Hello</strong> Vue! 一个字符串
(2) v-html
- 它的作用就是绑定 html 属性把里面的 html 代码渲染出来
<html>
  <head>
    <title></title>
    <script src="https://unpkg.com/vue"></script>
  </head>
  <body>
    <div id="app">
      <p v-html="msg"></p>
    </div>
    <script type="text/javascript">
      var app = new Vue({
        el: '#app', //element
        data: {
          msg: '<strong>Hello</strong> Vue!'
        }
      })
    </script>
  </body>
</html>- 渲染结果就是 Hello Vue!
(3) v-if 判断
- (i) 真就渲染 假就不渲染,假的话就是根本没有这个 dom
<html>
  <head>
    <title></title>
    <script src="https://unpkg.com/vue"></script>
  </head>
  <body>
    <div id="app">
      <p v-if="flag">不渲染</p>
    </div>
    <script type="text/javascript">
      var app = new Vue({
        el: '#app', //element
        data: {
          flag: false
        }
      })
    </script>
  </body>
</html>- 这样结果就是不渲染,移除了 DOM 
- (ii) 有 if 就会有 v-else 
<html>
  <head>
    <title></title>
    <script src="https://unpkg.com/vue"></script>
  </head>
  <body>
    <div id="app">
      <p v-if="flag">不渲染</p>
      <p v-else>最后的结果</p>
    </div>
    <script type="text/javascript">
      var app = new Vue({
        el: '#app', //element
        data: {
          flag: false
        }
      })
    </script>
  </body>
</html>- 这里 v-if,v-else 要紧贴着使用,不然会报错误,v-if 显示 v-else 隐藏。v-if 隐藏 v-else 就显示 
- (3) v-else-if 
<html>
  <head>
    <title></title>
    <script src="https://unpkg.com/vue"></script>
  </head>
  <body>
    <div id="app">
      <p v-if="show==='a'">渲染A</p>
      <p v-else-if="show==='b'">渲染B</p>
      <p v-else>渲染C</p>
    </div>
    <script type="text/javascript">
      var app = new Vue({
        el: '#app', //element
        data: {
          show: 'a'
        }
      })
    </script>
  </body>
</html>- 依据 show 值不同渲染不同的数据
(4) v-show
- 它不用于 v-if ,它的作用是渲染了但是依据变量的真假来隐藏,等价于 display:none 
- 而 v-if 则是 DOM 根本不会加载 
<html>
  <head>
    <title></title>
    <script src="https://unpkg.com/vue"></script>
  </head>
  <body>
    <div id="app">
      <p v-show="flag">渲染了,有DOM但是隐藏了</p>
    </div>
    <script type="text/javascript">
      var app = new Vue({
        el: '#app', //element
        data: {
          flag: false
        }
      })
    </script>
  </body>
</html>(5) v-for
- 列表循环
<html>
  <head>
    <title></title>
    <script src="https://unpkg.com/vue"></script>
  </head>
  <body>
    <div id="app">
      <p v-for="(content,index) in listdata" :key="index">
        这是第{{index}}数据,数据内容是{{content}}
      </p>
    </div>
    <script type="text/javascript">
      var app = new Vue({
        el: '#app', //element
        data: {
          listdata: ['第一条数据', '第二条数据', '第三条数据']
        }
      })
    </script>
  </body>
</html>- 必须要有:key
(6) v-once
- 只会渲染一次,即使数据改变了他也不会改变
<html>
  <head>
    <title></title>
    <script src="https://unpkg.com/vue"></script>
  </head>
  <body>
    <div id="app">
      <p v-once="msg"></p>
    </div>
    <script type="text/javascript">
      var app = new Vue({
        el: '#app', //element
        data: {
          msg: '只渲染一次,即使改变了也不会再次渲染'
        }
      })
    </script>
  </body>
</html>(7) v-bind
- v-bind 绑定数据 在 Vue 中可以简写成: 可以绑定数据,也可以当作给子组件传递数据
<html>
  <head>
    <title></title>
    <script src="https://unpkg.com/vue"></script>
  </head>
  <body>
    <div id="app">
      <p :class="[flag?'active':'']"></p>
    </div>
    <script type="text/javascript">
      var app = new Vue({
        el: '#app', //element
        data: {
          flag: true
        }
      })
    </script>
  </body>
</html>- flag 要是真就加载 active 的类名 flag 要是假就加载空 
- 动态 class 几种方式 
- (1)最简单的 flag 为真就加载 active 为假就不渲染 
<html>
  <head>
    <title></title>
    <script src="https://unpkg.com/vue"></script>
  </head>
  <body>
    <div id="app">
      <p :class="{'active':flag}"></p>
    </div>
    <script type="text/javascript">
      var app = new Vue({
        el: '#app', //element
        data: {
          flag: true
        }
      })
    </script>
  </body>
</html>- (2)依据条件来加载,flag 要是-1 就加载,要不是就不加载
<html>
  <head>
    <title></title>
    <script src="https://unpkg.com/vue"></script>
  </head>
  <body>
    <div id="app">
      <p :class="{'active':flag==-1}"></p>
    </div>
    <script type="text/javascript">
      var app = new Vue({
        el: '#app', //element
        data: {
          flag: -1
        }
      })
    </script>
  </body>
</html>- (3) 绑定并判断多个,属性名就是类名,值就是判断条件
<html>
  <head>
    <title></title>
    <script src="https://unpkg.com/vue"></script>
  </head>
  <body>
    <div id="app">
      <p :class="{'active':flag,'sort':flagsort}"></p>
    </div>
    <script type="text/javascript">
      var app = new Vue({
        el: '#app', //element
        data: {
          flag: -1
          flagsort:true
        }
      })
    </script>
  </body>
</html>(8) v-on
- 监听事件 可以简写成@ 
- v-on:click 可以简写成@click 
<html>
  <head>
    <title></title>
    <script src="https://unpkg.com/vue"></script>
  </head>
  <body>
    <div id="app">
      <p @click="change">点击我弹出来</p>
    </div>
    <script type="text/javascript">
      var app = new Vue({
        el: '#app', //element
        methods: {
          change() {
            window.alert('弹出来')
          }
        }
      })
    </script>
  </body>
</html>(9) v-model
- 数据的双向绑定 一般结合 input textarea 使用的修饰符可以有.lazy , .number, .trim
<html>
  <head>
    <title></title>
    <script src="https://unpkg.com/vue"></script>
  </head>
  <body>
    <div id="app">
      <input v-model="inputdata" type="text" />
    </div>
    <script type="text/javascript">
      var app = new Vue({
        el: '#app', //element
        data: {
          inputdata: '获取到数据'
        }
      })
    </script>
  </body>
</html> 
                        
                        