component props
一、props 屬性的使用
<html> <head> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> </head> <body> <div id="app"> <my-component mytitle="Hello component" sub-title="kebab-case"></my-component> </div> <script> Vue.component("my-component", { template: `<div>{{mytitle}}---{{subTitle}}</div>`, props: ['mytitle', 'subTitle'] }); let vm = new Vue({ el: "#app" }); </script> </body> </html>
說明:
1、由外 (元素屬性值) 向內傳入,特性為資料一更新,則傳入 data ,隨即更新頁面。
2、如果要在 props 使用 camel-cased 寫法,則於自訂 tag 裡要使用 kebab-cased 寫法。
二、Prop Types
<html> <head> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> </head> <body> <div id="app"> <my-component product-id="a123" product-name="car" price="1000"></my-component> </div> <script> Vue.component("my-component", { template: `<div>{{productId}}-{{productName}}-{{price}}</div>`, props: { productId: String, productName: String, price: Number, } }); let vm = new Vue({ el: "#app" }); </script> </body> </html>
說明:
1、此例為特別指定 Prop 裡屬性的形態。
三、Dynamic Props
<html> <head> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> </head> <body> <div id="app"> <my-component v-bind:product-id="dataId" :product-name="productName" price="1000"></my-component> </div> <script> Vue.component("my-component", { template: `<div>{{productId}}-{{productName}}-{{price}}</div>`, props: { productId: String, productName: String, price: Number, } }); let vm = new Vue({ el: "#app", data: { dataId: "a123", productName: "car" } }); </script> </body> </html>
說明:
1、動態載入,使用 vue 裡面的 data,然後將資料載入至 component。
參考資料: