以button組件爲例,咱們可能但願這個<button>內絕大多數狀況下都渲染文本「Submit。
爲了將「Submit」做爲後備內容,咱們能夠將它放在 <slot> 標籤內:
<button type="submit">
<slot>Submit</slot>
</button>
如今當我在一個父級組件中使用 <submit-button> 而且不提供任何插槽內容時:
<submit-button></submit-button>
則後備內容將默認渲染爲Submit,
若父級組件中有內容:
<submit-button>Save</submit-button>
則後備內容將覆蓋默認的Submit,渲染爲Save
複製代碼
是否有遇到過須要將5變成005相似的需求,如下方法即可輕鬆解決css
function PrefixInteger(num, n) {
return (Array(n).join(0) + num).slice(-n);
}
console.log(PrefixInteger(5,3))
複製代碼
全部的 prop 都使得其父子 prop 之間造成了一個單向下行綁定:父級 prop 的更新會向下流動到子組件中,可是反過來則不行。這樣會防止從子組件意外改變父級組件的狀態,從而致使你的應用的數據流向難以理解。
額外的,每次父級組件發生更新時,子組件中全部的 prop 都將會刷新爲最新的值。這意味着你不該該在一個子組件內部改變 prop。若是你這樣作了,Vue 會在瀏覽器的控制檯中發出警告。vue
- 注意在 JavaScript中對象和數組是經過引用傳入的,因此對於一個數組或對象類型的 prop 來講,在子組件中改變這個對象或數組自己將會影響到父組件的狀態。