博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Vue中的slot标签
阅读量:4696 次
发布时间:2019-06-09

本文共 1345 字,大约阅读时间需要 4 分钟。

   vue组件中的API有三个,分别是props,events与slot。前两个分别为传参和触发事件,slot实现的是内容分发。最近使用elementUI中的组合搜索框或者添加其他自定义内容时会用到此属性。它相当于AngularJS中的transclusion,意为插槽。

  vue中的组件,可谓是相当重要的内容。slot的主要作用就是组件的组合,用来扩展组件。简单来说:

  这样将两个自定义的组件组合起来,父组件<bigbig>也许会有自己的模板,这样<smallsmall>在里面就很尴尬,它需要一个明确的定义如何显示。此时便需要使用slot。

1.单个slot

它的含义指的就是组件模板中包含一个slot。就上个例子来说,如果<bigbig>不包含<slot>,那么<bigbig>自己本身模板中的内容将会被抛弃,只显示<smallsmall>。如果包含slot,那么<smallsmall>将会插入<slot>的内容中并且替换掉它。<slot>标签中也可以携带内容,当没有内容插入时,将显示slot标签中的内容。举个例子:

假定组件<bigbig>有如下模板:

我是组件里自带的段落~

如果没有需要插入的内容,就显示我啦~

现在我们要渲染以下代码:

我是需要渲染的内容~

将显示什么结果呢?答案是先显示“我是组件里自带的段落~”再显示“我是需要渲染的内容~”。因为我们已经将其插入slot中了,并替换掉了slot中的内容。如果我们没有需要插入的内容,则会显示slot原本中的内容“如果没有需要插入的内容,就显示我啦~”

2.具名slot

它的含义简单来说就是带有名字的slot。当插槽不止一个时,为了区分他们,则需要带上名字,用法和单个slot本质上是一样的。

假定组件<bigbig>有如下模板:

 

 

接下来渲染:

111

222

code

渲染结果为:111 code 222 。对应名称插入到对应的插槽。

3.作用域插槽

作用域插槽本质上是可以传递数据的插槽,类似于函数的传参。原来父组件可以通过绑定数据传递给子组件。作用域插槽就可以通过子组件绑定数据传递给父组件。在vue 2.5.0+ slot-scope不再限制在<template>元素上使用,而可以用在插槽内的任何元素或组件上。以下示例代码为转载:

  • {
    { todo.text }}

 

转载于:https://www.cnblogs.com/tomatoto/p/9633631.html

你可能感兴趣的文章
秀一下偶的数码奖品
查看>>
C# winform中Show()和ShowDialog()的区别
查看>>
linux uname命令参数及用法详解--linux查看系统信息命令
查看>>
A-Text Reverse(文本反向读)
查看>>
android studio使用部分报错处理
查看>>
Android 自定义ToolBar详细使用
查看>>
psexec局域网执行远程命令
查看>>
H-ui.admin 后台模板学习网
查看>>
解决supervisord启动问题
查看>>
全局组,通用组,本地组
查看>>
wget 抓取页面
查看>>
MYSQL错误代码#1045 Access denied for user 'root'@'localhost'
查看>>
linux 无需主机密码传输文件
查看>>
利用emacs调试C++程序教程
查看>>
VSCode快捷键
查看>>
[Raytracing]四种主要类型的追踪光线
查看>>
requirejs加载layerdate.js遇到的各种坑
查看>>
jQuery酷炫的文字动画效果代码
查看>>
css3 属性
查看>>
迪杰斯特拉算法
查看>>