问题开发当中会经常出现组件十分相似的组件,只有一部分是不同的
解决: 父组件:在引用的时候
import { Component } from "react";
import Me from "../me";const name = <div>名称</div>
class Shoop extends Component {render(){return <div style={{display: "flex"}}>{name}<Me><div slot="img"><img src="https://tse2-mm.cn.bing.net/th/id/OIP-C.GwJCNqHxfwmnsMUpKG6tmAHaHa?w=208&h=207&c=7&r=0&o=5&pid=1.7"></img></div><div slot="voide">视频</div></Me><Me><div slot="voide">视频</div></Me><Me><div></div></Me></div>}
}
export default Shoop
子组件
const Me = (props)=> {const newChildren = {}if(props.children && props.children.length > 1) {console.log(props.children,"props.childrenprops.childrenprops.children")props.children.map((Item) => {newChildren[Item.props.slot] = {}newChildren[Item.props.slot]["children"] = Item.props.children})}return (<div style={{height:"100px",width:"200px",background:"red"}}><div>名称</div><div> 图片自定义区域 {newChildren?.img ? newChildren?.img?.children : ""} </div><div> {newChildren?.voide ? newChildren?.voide?.children : ""}</div></div>)
}
export default Me
父组件设置 solt 其实设置什么都可以,只是vue 通常以solt 为定义出于习惯
当父组件设置过数据以后,自组件可以通过props.childen 拿到想要的数据进行处理
这里我没有写单插槽定义
如果写多个插槽的时候要考虑单个的问题,因为单个插槽传递过来是对象形式的