初識 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] 插槽 slotVue
- Vue(14)slot插槽的使用Vue
- 12.在vue中插槽(slot)Vue
- Vue 插槽(slot)使用(通俗易懂)Vue
- Vue 作用域插槽slotVue
- 對Vue插槽slot的理解Vue
- 8.Vue元件三---slot插槽Vue元件
- Vue 開發之插槽(slot)的理解和使用Vue
- vue.js-使用slot插槽分發內容Vue.js
- Vue作用域插槽 :slot-scope 例項Vue
- vue 元件中solt 插槽使用Vue元件
- vue2.6之後的 v-slot插槽Vue
- Vue 中的 slotVue
- Vue中使用插槽Vue
- Vue.js——slot-插槽的基本使用——2020.12.7Vue.js
- 詳解Vue中的插槽Vue
- 初識VueVue
- vue。js插槽VueJS
- vue slot 用法Vue
- vue元件化中slot的用法Vue元件化
- 深入理解vue中的slot與slot-scopeVue
- Vue slot的用法Vue
- 「Vue原始碼學習」你真的知道插槽Slot是怎麼“插”的嗎Vue原始碼
- [Vue] slot詳解,slot、slot-scope和v-slotVue
- Vue初識、el、dataVue
- 初識vue系列一Vue
- vue基礎-元件&插槽Vue元件
- 06 Vue3插槽Vue
- 細談 vue - slot 篇Vue
- Vue 匿名、具名和作用域插槽的使用Vue
- vue2版本中slot的基本使用詳解Vue
- 初識vue系列之二Vue
- Vue 插槽之插槽內容學習總結Vue
- 關於Vue中插槽的理解和總結Vue
- Vue 插槽 廢棄語法Vue
- Vue元件深入理解--插槽Vue元件