企业管理系统定制开发一学就会的Vue slot插槽,真的不看看吗?(使用脚手架)

目录


一、前言

企业管理系统定制开发完整内容请关注:

企业管理系统定制开发开始前的准备:

企业管理系统定制开发首先创建两个子组件,soltOne企业管理系统定制开发是基础使用,soltTwo是域名插槽使用,soltThree是演示父组件获取子组件内容,图片后的代码一定要注意,容易出现很多细节上的小问题。

  1. import SoltOne from './components/soltOne.vue'
  2. import SoltThree from './components/soltThree.vue'
  3. import SoltTwo from './components/soltTwo.vue'
  4. export default {
  5. name: 'app',
  6. components: {
  7. SoltOne,
  8. SoltTwo,
  9. SoltThree
  10. },

 二、的基本使用

子组件:

在子组件中使用 <slot></slot>给值留下位置,可以得到父组件的值

  1. <template>
  2. <div>
  3. <strong>ERROR:</strong>
  4. <slot></slot>
  5. </div>
  6. </template>
  7. <script>
  8. export default {
  9. name:'soltOne'
  10. }
  11. </script>
  12. <style>
  13. </style>

父组件:

 <solt-one>有Bug发生</solt-one>

展示效果:

 以上就是插槽的最基本的使用

三、域名插槽的基本使用

子组件:

这里,我简单的划分了三个区域,一个头部,内容,尾部

头部和尾部 <slot></slot>都给上了name:‘’让其获得域名

  1. <template>
  2. <div>
  3. <header>
  4. <slot name="header"></slot>
  5. </header>
  6. <main>
  7. <slot></slot>
  8. </main>
  9. <footer>
  10. <slot name="footer"></slot>
  11. </footer>
  12. </div>
  13. </template>
  14. <script>
  15. export default {
  16. name:'soltTwo'
  17. }
  18. </script>
  19. <style>
  20. </style>

父组件:

在此内容下,内只要对应子组件起的name名,就能把值赋值到想要的地方,没有name名的将会赋值到,子组件中没有name名的位置。

  1. <solt-two>
  2. <p slot="header">头部信息</p>
  3. <p>主要内容1</p>
  4. <p>主要内容2</p>
  5. <p slot="footer">尾部信息</p>
  6. </solt-two>

效果展示:

父组件还有一种,可以通过域名来实现插槽,使用:来获取子组件的域名,从而指定赋值,其中也可以添加多条内容,比上一种方法更完善。

  1. <solt-two>
  2. <template v-slot:header>
  3. <p>头部信息1</p>
  4. <p>头部信息2</p>
  5. </template>
  6. <p>主要内容1</p>
  7. <p>主要内容2</p>
  8. <template v-slot:footer>
  9. <p>尾部信息1</p>
  10. <p>尾部信息2</p>
  11. </template>
  12. </solt-two>

注意:

这里的顺序是根据子组件的顺序排列,父组件跟换域名位置,还是按照子组件的域名排序出现

内容会跟着父组件发生改变

  1. <solt-two>
  2. <template v-slot:footer>
  3. <p>头部信息1</p>
  4. <p>头部信息2</p>
  5. </template>
  6. <p>主要内容1</p>
  7. <p>主要内容2</p>
  8. <template v-slot:header>
  9. <p>尾部信息1</p>
  10. <p>尾部信息2</p>
  11. </template>
  12. </solt-two>

四、如何通过slot从子组件获取内容

子组件

这里需要注意的是,要将子组件的值进行v-bind绑定

  1. <template>
  2. <div>
  3. <slot :son="list">
  4. </slot>
  5. </div>
  6. </template>
  7. <script>
  8. export default {
  9. name:'soltThree',
  10. data(){
  11. return{
  12. list:[1,2,3,4,5,6,7,8,9]
  13. }
  14. }
  15. }
  16. </script>
  17. <style>
  18. </style>

父组件

一下提供了四种,子组件的值可以使用v-for遍历,这里的list1是自己新起的名字,son是子组件绑定的,slot-scope这种方法逐步出现了淘汰, #default这种方法比较推荐,看起来就很简单好记

  1. <solt-three>
  2. <template v-slot="list1">
  3. <div>{{list1.son}}</div>
  4. </template>
  5. </solt-three>
  6. <solt-three>
  7. <template v-slot:default="list1">
  8. <div>{{list1.son}}</div>
  9. </template>
  10. </solt-three>
  11. <solt-three>
  12. <template #default="list1">
  13. <ul>
  14. <li v-for="(item,index) in list1.son" :key="index">{{item}}</li>
  15. </ul>
  16. </template>
  17. </solt-three>
  18. <solt-three>
  19. <template slot-scope="list1">
  20. <div>{{list1.son}}</div>
  21. </template>
  22. </solt-three>

效果展示:

五、作用域插槽案例

 父组件替换插槽的标签,但是内容是由子组件来提供。

​ 当组件需要在多个父组件多个界面展示的时候,将内容放在子组件插槽中,父组件只需要告诉子组件使用什么方式展示界面。

子组件

  1. <template >
  2. <div>
  3. <slot :data="pLanguage">
  4. <ul>
  5. <li v-for="(item, index) in pLanguage" :key="index">{{item}}</li>
  6. </ul>
  7. </slot>
  8. </div>
  9. </template>
  10. <script>
  11. export default {
  12. name:'oneText' ,
  13. data() {
  14. return {
  15. pLanguage:['JavaScript','Java','C++','C']
  16. }
  17. },
  18. }
  19. </script>
  20. <style>
  21. </style>

父组件

 

  1. <one-text></one-text>
  2. <one-text>
  3. <template #default="slot">
  4. <span>{{slot.data.join(' - ')}}</span>
  5. </template>
  6. </one-text>
  7. <one-text>
  8. <template #default="slot">
  9. <p><span v-for="(item, index) in slot.data" :key="index">{{item}}</span></p>
  10. <span>{{slot.data.join(' * ')}}</span>
  11. </template>
  12. </one-text>

效果展示:

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发