博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在 Vue 中是使用插槽
阅读量:7038 次
发布时间:2019-06-28

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

属性传值

先写一段简单的代码

Vue.component('child', { props: { content:String }, template: `

hello

`,})let vm = new Vue({ el: '#root'})

这种写法有两个问题:

  1. p标签外面会有一层div,这个div是无法去掉的,有人会想,能不能用template代替,其实是不可以的,在这里模版站位符是不能用的。
  2. 如果content传递的内容很多,代码就会变得很难阅读。

当我的子组件有一部分内容,是根据父组件传递过来的dom进行显示的话,这时候可以换一种语法。

插槽slot

Dell

//这种语法看起来非常像,用子组件,我向里插入内容
Vue.component('child', { props: { content:String }, template: `

hello

//slot 标签显示的内容就是父组件向子组件插入进来的内容
`,})let vm = new Vue({ el: '#root'})

<p>Dell</p>这种语法看起来非常像,用子组我向里插入内容,所以我们把它叫做插槽。

slot标签显示的内容就是父组件向子组件插入进来的内容。

通过插槽可以更方便的向子组件传递dom元素,同时子组件只需通过slot来使用就可以了。

slot其他功能

如果子组件里没有dom元素,可以让它显示默认内容,如下:

默认内容

具名插槽

如果现在有个需求是,headerfooter是由外部引入的该怎么弄呢?如下

header
Vue.component('body-content', { props: { content:String }, template: `
content

`,})let vm = new Vue({ el: '#root'})

slot标签name属性对应的是组件中slot属性,通过这种写法,可以在调用子组件时,一次性传递多个区域的dom结构,在子组件里通过具名插槽来分别使用不同部分的dom结构

转载地址:http://ienal.baihongyu.com/

你可能感兴趣的文章
运维之殇
查看>>
System.ServiceModel.CommunicationException: 接收HTTP 响应时发生错误
查看>>
JSP获取spring 的容器ApplicationContext
查看>>
路由器的远程访问
查看>>
PHP 高级编程之多线程(四)-多线程与ZeroMQ
查看>>
Java发送和接收广播的UDP,用于探测局域网中指定类型的设备
查看>>
MySQL 复制过滤详解
查看>>
无法读取此系统上以前注册的服务器的列表。请在“已注册的服务器”窗口中重新注册您的服务器...
查看>>
【COCOS2DX-LUA 脚本开发之九】使用COCOS2DX-LUAPROXY便捷LUA项目快速使用COCOS2DX引擎EXTENSIONS扩展包...
查看>>
【翻译】揭秘:MySQL Pool Scanner(MPS)
查看>>
Fedora 17的root用户登陆图形界面
查看>>
AngularJS 如何做身份验证
查看>>
Struts2常量的配置
查看>>
蚂蚁金服副总裁陆杰讯:搭建安全统一战线,不仅要防守,还要进攻
查看>>
Django自定义上传目录
查看>>
音视频解决方案-如何开通视频点播
查看>>
Ubuntu安装虚拟机
查看>>
gitlab的搭建及问题的解决
查看>>
Cocos2d-x3.0模版容器详解之二:cocos2d::Map<K,V>
查看>>
免费获取WP之类的开发者权限或免费使用Azure 2015-10-19
查看>>