Vue插槽是什么?

插槽

Vue的组件是高级的自定义标签,我们可以像这样去使用一个叫myCom的组件,而组件中的内部并不像html标签那样写在标签内,而是写在myCom组件内的complate模板中,如果我们在中写内容的话是不会显示到页面这种的,如果我们非要在自定义便签中添加内容,比如说Hello,我想让hello在组件中显示出来,那么我们就要用到插槽。

	<my-com>Hello</my-com>
    <my-com>World</my-com>

如何使用插槽?
我们在子组件的模板内添加slot,内部放默认内容,相当于申请了一块位置

template: `
        <div>
          <button>
            <slot :a="subMsg" name="default">默认内容{{subMsg}}</slot>
          </button>
          <div>
            <slot :sub="subMsg"  name="slot2" :test="1">默认内容2</slot>
          </div>
        </div>
      `

有了位置以后,组件标签内的内容就可以填充到默认位置当中
如果不想默认的排放数据,我们可以自定义模板将内容放到插槽中

<template #default>
        <div>
          123
        </div>
      </template>

如果没写属性,则默认属性为v-slot=default表示默认,这就是默认插槽
如果写了属性指定slot名字,则为具名插槽,该内容也会放到指定的插槽中
==========================================================
没有名字的插槽 --默认插槽

	<slot>123</slot>
    <slot name="default">123</slot>

具有名字插槽 --具名插槽

<slot name="test">123</slot>

如果自定义模板没有指定插槽,那么他会默认放到插槽中,
如果指定了插槽,正则将会放到对应的插槽中

指定插槽

    <my-com>
      <template v-slot:default>
        hello
      </template>
      <template v-slot:test>
        123
      </template>
      <template #test>
        123
      </template>
    </my-com>

总结

插槽能让我们在组件标签内填充内容,相当于组件是一个电影院,电影院内有可以放很多椅子(插槽),来看电影的人(自定义模板)找位置坐下,如果是默认的自定义模板,则按默认规则入座,如果是指定了插槽的,则按对应的插槽入座。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
1. 元素隐藏的方法有以下几种: - display: none; (隐藏元素并从文档流中移除) - visibility: hidden; (隐藏元素但不从文档流中移除) - opacity: 0; (使元素透明) - height: 0; (将元素高度设为0) - width: 0; (将元素宽度设为0) display:none和visibility:hidden的区别在于,前者会将元素从文档流中移除,导致页面布局重绘,而后者不会影响页面布局,元素的占位仍然存在。 2. 闭包是指函数和函数内部能访问到的变量的集合。闭包形成的原因是因为函数可以作为返回值,被传递到其他函数中执行,此时内层函数可以访问外层函数的变量。闭包的用途包括数据封装、模块化编程、实现私有变量等。 3. 异步轮询机制是指通过定时器不断地发送请求,然后在服务器返回数据后进行处理。这种机制可以用于实时更新数据或者轮询服务器状态等场景。 4. Ajax是异步的,可以在不刷新页面的情况下向服务器发送请求并获取数据。Ajax的流程包括创建XMLHttpRequest对象、配置请求参数、发送请求、接收响应、处理响应数据等步骤。 5. Vue插件的封装一般包括定义插件、安装插件、添加全局方法或属性等。可以使用Vue.use()方法来安装插件。 6. Vue webpack打包优化可以从以下几个方面入手:代码分割、懒加载、压缩代码、使用CDN等。 7. $nextTick()方法可以在当前DOM更新完成后执行回调函数,常用于在更新后操作DOM。例如在更新后获取DOM元素的宽高。 8. Vue项目打包优化可以从以下几个方面入手:代码分割、懒加载、压缩代码、使用CDN等。 9. Vue可以通过transition组件和动画类库来实现动画效果。 10. Vue插槽是一种组件化编程的方式,可以将组件的部分内容暴露给父组件进行自定义插槽可以分为具名插槽和匿名插槽。具名插槽可以根据插槽名字来进行内容分发,而匿名插槽则是默认插槽插槽的用途包括组件复用、自定义组件内容等。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值