昨天学习了vue的简单实用,今天来看一下vue的指令。

    指令带有前缀 v-,以表示它们是 Vue 提供的特殊 attribute。可能你已经猜到了,它们会在渲染的 DOM 上应用特殊的响应式行为。

    一、v-bind

    代码示意如下:

    1. <!DOCTYPE html>
    2. <html>
    3. <head>
    4. <title>v-bind</title>
    5. </head>
    6. <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    7. <body>
    8. <div id="test">
    9. <span v-bind:title="message">
    10. 将鼠标悬停在这
    11. </span>
    12. </div>
    13. </body>
    14. <script>
    15. var test = new Vue({
    16. el: '#test',
    17. data: {
    18. message: '页面加载于' + new Date().toLocaleDateString()
    19. }
    20. })
    21. </script>
    22. </html>

    效果:
    v-bind.gif
    二、v-if

    代码示例:

    1. <!DOCTYPE html>
    2. <html>
    3. <head>
    4. <title>v-bind</title>
    5. </head>
    6. <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    7. <body>
    8. <div id="test">
    9. <span v-if="seen">
    10. 你能看到我
    11. </span>
    12. <span v-if="seen2">
    13. 你看不到我
    14. </span>
    15. </div>
    16. </body>
    17. <script>
    18. var test = new Vue({
    19. el: '#test',
    20. data: {
    21. seen: true,
    22. seen2: false
    23. }
    24. })
    25. </script>
    26. </html>

    演示:
    v-if.png
    三、v-for

    代码示例:

    1. <!DOCTYPE html>
    2. <html>
    3. <head>
    4. <title>v-bind</title>
    5. </head>
    6. <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    7. <body>
    8. <div id="test">
    9. <ol>
    10. <li v-for="todo in todos">
    11. {{todo.text}}
    12. </li>
    13. </ol>
    14. </div>
    15. </body>
    16. <script>
    17. var test = new Vue({
    18. el: '#test',
    19. data: {
    20. todos: [
    21. { text: 'Java从入门到入土' },
    22. { text: 'MySql从删库到跑路' }
    23. ]
    24. }
    25. })
    26. </script>
    27. </html>

    演示:
    v-for.png
    四、v-on

    代码示例:

    1. <!DOCTYPE html>
    2. <html>
    3. <head>
    4. <title>v-bind</title>
    5. </head>
    6. <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    7. <body>
    8. <div id="test">
    9. <p>{{message}}</p>
    10. <button v-on:click="reverseMessage">反转消息</button>
    11. </div>
    12. </body>
    13. <script>
    14. var test = new Vue({
    15. el: '#test',
    16. data: {
    17. message: 'hello,vue.js'
    18. },
    19. methods: {
    20. reverseMessage: function () {
    21. this.message = this.message.split('').reverse().join('')
    22. }
    23. }
    24. })
    25. </script>
    26. </html>

    效果:
    v-on.gif
    五、v-model

    代码示例:

    1. <!DOCTYPE html>
    2. <html>
    3. <head>
    4. <title>v-bind</title>
    5. </head>
    6. <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    7. <body>
    8. <div id="test">
    9. <p>{{ message }}</p>
    10. <input v-model="message">
    11. </div>
    12. </body>
    13. <script>
    14. var test = new Vue({
    15. el: '#test',
    16. data: {
    17. message: 'hellohellohello'
    18. }
    19. })
    20. </script>
    21. </html>

    效果:
    v-model.gif