---
# System prepended metadata

title: Vue.js學習筆記

---

# Vue.js學習筆記

```
<!DOCTYPE html>
<html>

<head>
    <title>My first Vue app</title>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js""></script>
</head>

<body>
    
    <div id="app-1">
        {{ message1 }}
    </div>

    <div id="app-2">
        <span v-bind:title="message2">
            鼠標移到我這裡等待幾秒
        </span>
    </div>

    <div id="app-3">
        <p v-if="seen">
            now you see me
        </p>
    </div>

    <div id="app-4">
        <ol>
          <li v-for="(todo) in todos">
            {{ todo.text }}
          </li>
        </ol>
      </div>

    <script>
        var app1 = new Vue({
            el: '#app-1',
            data: {
                message1: 'Hello Vue!'
            }
        })

        var app2 = new Vue({
            el: '#app-2',
            data: {
                message2: 'Loading page ' + new Date().toLocaleString()
            }
        })

        var app3 = new Vue({
            el: '#app-3',
            data: {
                seen: false
            }
        })

        var app4 = new Vue({
            el: '#app-4',
            data: {
                todos: [
                    { text: '學習 JavaScript' },
                    { text: '學習 Vue' },
                    { text: '整個項目' }
                ]
            }
        })
    </script>
    </body>

</html>
```

* 使用src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"引入vue
* app1: el: '#app-1',表示id="app-1"的div可以顯示message1的data資訊('Hello Vue!')
* app2: v-bind是vue提供的特殊attribute,指鼠標移過去可以顯示message2的資訊
* app3: v-if表示seen為true顯示資訊,false隱藏
* app4: v-for迭代陣列，列出text清單
* app5: v-on監聽事件,指click之後反轉訊息,split會將訊息以''分開,reverse反轉,在join拼湊起來
* app6: v-model綁定message,指message的data變更v-model的message裡的data也會變更,反之亦然