您好,登錄后才能下訂單哦!
這篇文章主要介紹了如何在vue中利用$slot 獲取插槽的節點,億速云小編覺得不錯,現在分享給大家,也給大家做個參考,一起跟隨億速云小編來看看吧!
Vue是一套用于構建用戶界面的漸進式JavaScript框架,Vue與其它大型框架的區別是,使用Vue可以自底向上逐層應用,其核心庫只關注視圖層,方便與第三方庫和項目整合,且使用Vue可以采用單文件組件和Vue生態系統支持的庫開發復雜的單頁應用。
vue 中的 $slot
以前一直不知到這個東西,后來發現 vue api 中 藏著很多的 很神奇的 api,比如這個
具名插槽很好理解,但是那個 default 就有點難了,
寫了一個炒雞簡單的 demo
father:
<template> <div> <button @click="getSlot">getSlot</button> <try ref="try"> <div class="hello1">hello1</div> <div class="hello2">hello2</div> <div class="hello3">hello3</div> </try> <button @click="getArc">getArc</button> </div> </template> <script> import try from './try' export default { components: { try }, methods: { getSlot () { this.$refs.try.getSlot() } } } </script>
try.vue
<template> <div> <h3>我是子組件 的 標題</h3> <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]) // 獲得 那些 插入的 按鈕 } }
以上就是億速云小編為大家收集整理的如何在vue中利用$slot 獲取插槽的節點,如何覺得億速云網站的內容還不錯,歡迎將億速云網站推薦給身邊好友。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。