vue 中的 $slot 獲取 插槽的節點
阿新 • • 發佈:2019-01-31
vue 中的 $slot
以前一直不知到這個東西,後來發現 vue api 中 藏著很多的 很神奇的 api,比如這個
具名插槽很好理解,但是那個 default 就有點難了,
寫了一個炒雞簡單的 demo
father:
<template> <div> <button@click="getSlot">getSlot</button> <tryref="try"> <divclass="hello1">hello1</div> <divclass="hello2try.vue
<template> <div> <h2>我是子元件 的 標題</h2> <slot> 只有在沒有內容分發的時候我才會出現 </slot> </div></template><script>export default { methods: { getSlot () { console.log(this.$slots) } }}</script點選了getSlot 之後的輸出
可以看到 default ,
裡面有插入的 三個 標籤和 三個標籤之間的 兩個 空格,就有 5 個 了
通過這個就能很輕易的 拿到 父元件 通過插槽插入 子元件的 標籤了
this.slotChildren = [] for (let i = 0; i< this.$slots.default.length; i++) { if (that.$slots.default[i].elm.nodeType !== 3) { that.slotChildren.push(that.$slots.default[i]) // 獲得 那些 插入的 按鈕 } }