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

本文共 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://wiqwm.baihongyu.com/

你可能感兴趣的文章
orcl 自定义排序
查看>>
AES加密解密算法简介
查看>>
KVM虚拟机管理指南(纯命令行模式)
查看>>
Hibernate 一对多注解 mappedby 作用
查看>>
grub legacy练习 之 单用户模式修改root账户口令,并为grub菜单项设置密码保护功能...
查看>>
VLAN(单臂路由,三层路由功能)
查看>>
CentOS安装rstatd服务
查看>>
解决centos7命令行中文乱码
查看>>
mysql 优化
查看>>
浮动窗口-固定窗口-css实现窗口浮动-jq浮动窗口-三种方法
查看>>
如此悲伤,如此愉悦,如此独特
查看>>
jQuery.extend 函数详解
查看>>
JDK高性能编程之多线程
查看>>
20个代码生成框架
查看>>
mysql-mmm 架构详细教程
查看>>
使用Jquery操作iframe中的元素
查看>>
ETL数据抽取转换工具DataX使用记录
查看>>
Beautiful soup 中文文档站
查看>>
医疗信息化、医学、医院管理、医疗器械资料下载
查看>>
FSMO浅析
查看>>