slot在vue中称之为插槽展示:
没有使用slot
使用slot
理解:
在组件中,使用
<slot> </slot>
标签进行占位,如下代码子组件中的templat
<template>
<div class="div">
<slot name='test'>
</slot>
<span>
这个是常规内容第一项
</span>
<slot name='ee'>
</slot>
<span>
这个是常规内容
</span>
</div>
</template>
这里我使用了两个slot标签占位,而且还是具名插槽 占了页面中的两个位置
作用:
插槽位置将会展现我从父组件传过来的demo
在我没传demo之前,父组件是这样HTML
<template>
<div class="hello">
<Sllot >
</Sllot>
<h1>{{ msg }}</h1>
</div>
</template>
js
<script>
import Sllot from './sllot'
export default {
name: 'HelloWorld',
data () {
return {
msg: 'Welcome to Your Vue.js App'
}
},
components: {
Sllot
}
}
页面
开始在父组件中传入demo, 在子组件插槽位置显示HTML
<template>
<div class="hello">
<Sllot >
<h1 slot='ee'>不好,真的不好</h1> // 这内容将会在 name=ee 的slot位置展示
<h6 slot='test'>不sdfsdf好,真的不好</h6> 这内容将会在 name=test 的slot位置展示
</Sllot>
<h1>{{ msg }}</h1>
<h2>Essential Links</h2>
</div>
</template>
js没有变动,就不上了
页面开始变化了
我在子组件Sllot中传入的demo分别展示在之前我写的slot(插槽)位置
所以插槽可以让我们更好的布局。
它的作用对于在页面局部更改样式非常有效