Vue中的插槽--组件复用,内容自定义

插槽

插槽-默认插槽

  • 作用:让组件内部的一些结构支持自定义

  • 需求:要在页面中显示一个对话框,封装成一个组件(对话框有很多功能是类似的,就可进行封装)

  • 问题:组件的内容部分,不希望写死,希望能使用的时候自定义。

  • 插槽基本语法:

    1. 组件内需要定制的结构部分,改用<slot></slot>占位
    2. 使用组件时,<MyDialog></MyDialog>标签内部,传入结构替换slot

示例:

  1. 使用slot占位:

    image-20230924173753585

  2. 在标签内部传入结构:

    image-20230924173810399

效果:

image-20230924173838581

插槽-后备内容(设置默认值)

  • 前言:若是什么内容都不传递,那插槽处就是空白的。

  • 插槽后备内容:封装组件时,可以为预留的<slot>插槽提供后备内容(默认内容)。

  • 语法:在标签内,放置内容,作为默认显示内容(有值传入那就是值,没值传入就是默认值)

image-20230924174404422

插槽-具名插槽

需求:一个组件内有多处结构,需要外部传入标签,进行定制

默认插槽:一个的定制位置

  • 具体语法:

    1. 多个slot使用name属性区分名字

    2. template配合v-slot:名字来分发对应标签

    3. v-slot:插槽名可以简化成#插槽名

  1. 起别名:

image-20230924181253564

  1. 引用:

    image-20230924181404341

插槽–作用域插槽

  • 作用域插槽:定义slot插槽的同时是可以传值的。给插槽上可以绑定数据,将来使用组件时可以用。

  • 例如:表格的渲染

    1. 父传子,动态渲染表格内容

    2. 利用默认插槽,定制操作列

    3. 删除或查看都需要用到当前项的id,属于组件内部的数据

      通过作用域插槽传值绑定,进而使用

  • 语法:

    1. 给slot标签,以添加属性的方式传值
    2. 所有添加的属性,都会被收集到一个对象中
    3. 在template中,通过#插槽名="obj"接收,默认插槽名为default

    代码示例:

image-20230924191019879

image-20230924191112193

PS:

  • 插槽分类:
    • 默认插槽(组件内定制一处结构)
    • 具名插槽(组件内定制多处结构)
  • 作用域插槽:是插槽的一个传参语法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vue.js 2自定义组件是一种非常重要的概念,它允许开发者将页面拆分为可重用的组件,以提高代码的可维护性和复用性。下面是关于Vue.js 2自定义组件的介绍: 1. 创建组件: 在Vue.js,可以使用Vue.component()方法来创建一个全局的自定义组件,或者在组件选项使用components属性来创建局部的自定义组件。 2. 组件的模板: 组件的模板可以使用HTML标签和Vue.js的模板语法来定义。可以在模板使用Vue.js的指令、表达式、事件处理等功能。 3. 组件的数据: 每个组件都有自己的数据对象,可以在组件选项使用data属性来定义组件的数据。组件的数据是独立的,不会相互影响。 4. 组件的通信: 在Vue.js组件之间可以通过props属性和自定义事件进行通信。通过props属性,父组件可以向子组件传递数据;通过自定义事件,子组件可以向父组件发送消息。 5. 组件的生命周期: 组件在创建、更新和销毁过程会触发一系列的生命周期钩子函数,可以在这些钩子函数执行相应的操作。常用的生命周期钩子函数包括created、mounted、updated和destroyed等。 6. 组件的样式: 组件的样式可以使用普通的CSS样式表,也可以使用Vue.js的scoped样式,以确保组件的样式只作用于当前组件。 7. 组件插槽插槽是一种特殊的组件内容分发机制,允许父组件向子组件传递DOM结构。通过插槽,可以实现更灵活的组件复用。 以上是关于Vue.js2自定义组件的简要介绍,希望对有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

曼诺尔雷迪亚兹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值