<template> <divclass="home"> <h2>Home</h2> <p>Hello, My Name is {{ name }}, and I'm {{ age }} years old</p> <button @click="onClick">Click Me</button> </div> </template>
<script> exportdefault { setup() { let name = 'PeaNu' let age = 24 functiononClick() { console.log('Clicked') } // 這個 return 很重要 return { name, age, onClick } } } </script>
要使用 Composition API 的第一步就是建立 setup hook,他其實就是一個 function 而已,不過特別的地方在於「可以直接在裡面寫 JavaScript」。
上面可以看到在 setup 中我可以建立變數或函式,這個是在 Options API 中沒辦法做到的事情。
接著最後再用 return 把東西給丟出去,這個目的是為了:
讓 template 中能夠存取
讓 template 中能夠存取
讓 template 中能夠存取
寫到這裡應該會發現這跟 React 的 custom hook 很像,我們都是把邏輯封裝在 function 後再把對應的 state 或 method 給 return 出去,所以這邊應該不難理解為什麼能這樣子操作。
<template> <divclass="home"> <p>Hello, My Name is {{ name }}, and I'm {{ age }} years old</p> <button @click="changeName">Click Me</button> </div> </template>
export default { setup() { let name = 'PeaNu' let age = 24 return { name, age } }, methods: { changeName() { this.name = 'PPB' // 這邊的 log 會印出 PPB,但畫面上的 name 依然為 PeaNu console.log(this.name) } } }