初識 Vue(19)---(Vue 中使用插槽(slot))
Vue 中使用插槽(slot)
案例:子元件中的一部分內容是根據父元件傳遞來的 DOM 來進行顯示
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Vue 中使用插槽(slot)</title>
<script src="./vue.js"></script>
</head>
<body>
<div id="root">
<child content='<p>Dell</p>'></child>
</div>
<script>
Vue.component('child',{
props:['content'],
template:'<div><p>hello</p><div v-html="this.content"></div></div>'
})
var vm = new Vue({
el:'#root',
})
</script>
</body>
</html>
輸出:
存在問題:1.通過 content 傳值,想直接使用裡面的 <p> ,必須在外面包裹一層 DIV;
2.用這種方法向子元件傳值時,當傳遞的數值過多時會造成程式碼可讀性很差
子元件中的一部分內容是根據父元件傳遞來的 DOM 來進行顯示的時候,可以使用插槽的方法
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Vue 中使用插槽(slot)</title>
<script src="./vue.js"></script>
</head>
<body>
<div id="root">
<child>
<p>Dell</p>
</child>
</div>
<script>
Vue.component('child',{
props:['content'],
//獲取插槽內容
template:'<div> <p>Hello</p><slot></slot></div>'
})
var vm = new Vue({
el:'#root',
})
</script>
</body>
</html>
輸出:
slot 還可以設定預設樣式
<body>
<div id="root">
<child>
</child>
</div>
<script>
Vue.component('child',{
props:['content'],
//獲取插槽內容
template:'<div> <p>Hello</p><slot>預設內容</slot></div>'
})
輸出:
功能:輸出,其中 header 部分和 footer 部分均由父元件傳入
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Vue 中使用插槽(slot)</title>
<script src="./vue.js"></script>
</head>
<body>
<div id="root">
<body-content>
<div class="header" slot='header'>header</div>
<div class="footer" slot='footer'>footer</div>
</body-content>
</div>
<script>
Vue.component('body-content',{
//獲取插槽內容
template:'<div>
<slot name='header'></slot>
<div class='content'>content</div>
<slot name='footer'></slot>
</div>'
})
var vm = new Vue({
el:'#root',
})
</script>
</body>
</html>
給每一個插槽給定具體的名字稱為 具名插槽(可以有多個,也可以有預設值,但插槽只能有一個)
輸出:
具名插槽 預設值
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Vue 中使用插槽(slot)</title>
<script src="./vue.js"></script>
</head>
<body>
<div id="root">
<body-content>
<div class="footer" slot='footer'>footer</div>
</body-content>
</div>
<script>
Vue.component('body-content',{
//獲取插槽內容
template:'<div>
<slot name='header'>default header</slot>
<div class='content'>content</div>
<slot name='footer'></slot>
</div>'
})
var vm = new Vue({
el:'#root',
})
</script>
</body>
</html>
輸出:
相關文章
- vue插槽slotVue
- VUE 插槽 slotVue
- Vue(14)slot插槽的使用Vue
- Vue 插槽(slot)使用(通俗易懂)Vue
- 12.在vue中插槽(slot)Vue
- Vue 作用域插槽slotVue
- 對Vue插槽slot的理解Vue
- 8.Vue元件三---slot插槽Vue元件
- vue.js-使用slot插槽分發內容Vue.js
- Vue 開發之插槽(slot)的理解和使用Vue
- Vue.js——slot-插槽的基本使用——2020.12.7Vue.js
- Vue作用域插槽 :slot-scope 例項Vue
- vue 元件中solt 插槽使用Vue元件
- vue2.6之後的 v-slot插槽Vue
- Vue 中的 slotVue
- Vue中使用插槽Vue
- 初識VueVue
- vue中的插槽詳解Vue
- 詳解Vue中的插槽Vue
- 035.Vue3入門,使用具名插槽Slot中,同時顯示主頁面和多個插槽頁面內容Vue
- vue slot 用法Vue
- vue。js插槽VueJS
- Vue插槽與作用域插槽Vue
- 深入理解vue中的slot與slot-scopeVue
- vue元件化中slot的用法Vue元件化
- Vue slot的用法Vue
- Vue3中,使用TSX/JSX編寫的父元件,如何向子元件中傳遞具名插槽(slot)的內容VueJS元件
- [Vue] slot詳解,slot、slot-scope和v-slotVue
- 032.Vue3入門,插槽Slot的作用域和預設內容Vue
- 「Vue原始碼學習」你真的知道插槽Slot是怎麼“插”的嗎Vue原始碼
- Vue初識、el、dataVue
- 033.Vue3入門,多個插槽Slot的命名呼叫和#號簡寫Vue
- mapboxgl V3 Slot插槽使用介紹
- 062、Vue3+TypeScript基礎,插槽中使用具名插槽VueTypeScript
- vue3使用slot-scope報錯Vue
- 細談 vue - slot 篇Vue
- vue2版本中slot的基本使用詳解Vue
- Vue 匿名、具名和作用域插槽的使用Vue