懶人包總是最方便的。
這邊先透過 CDN 把 Vue 引入:
1 | <script src="https://unpkg.com/vue@3.0.2"></script> |
接著就能開始寫 JS 了:
1 | const app = Vue.createApp({ |
只要透過 Vue 的 createApp 我們就能建立一個元件,裡面會傳入一個物件來儲存元件的 data、methods 等等之類的東西。
app.mount 則是讓我們用來告訴 Vue 要把元件「綁定」到哪一個元件上?基本上綁定就等於把「控制權交給 Vue」,所以現在只要是包含在 #app 這個裡的 HTML 元素都會被 Vue 控制。
只有被 Vue 控制的元素才可以用「v-directive」跟「template」這些東西,簡單來說就是 Vue 的語法。
這邊只是帶你認識一些基本結構所以才用 CDN,不然基本上現在要開發一個 Vue 專案時會透過「Vue-CLI」來開發比較多,這點要注意一下。
v-directive
@event建立事件監聽v-if/v-else條件渲染(操作 DOM 元素)v-show條件渲染(透過 CSS 來控制 display)v-for列表渲染(要用in或of都可以,沒有差別)v-slot:name建立命名 slot:attr動態的屬性值v-model資料與畫面雙向綁定
modifier
keyup.ctrl按著 ctrl 時才會 triggerv-model.trim去掉頭尾空白字元keydown.prevent取消預設行為(可以用來避免 enter 送出表單)
順道一提關於 v-modal 背後的機制其實只是這樣:
1 | <input type="email" @input="email = $event.target.value" :value="email" /> |
這就跟你在 React 裡面把 value 跟 state 綁再一起,接著再用 onChange 去改變 state 的道理是差不多的。只是 Vue 綁定的事件有點不同而已(onInput 或 onChange)
跟 $ 有關的東西
基本上只要是 $ 開頭的東西都是被綁在 Vue 的實體上,所以會需要透過 this 來取得。
$event用來取得 Event 物件$ref用來取得 DOM 元素$emit用來自定義事件$route用來取得路由資訊$router用來操作路由
也因為和 this 有關,所以如果是寫 Composition API 的話基本上看不太到跟 $ 有關的東西 XD