当前位置: 首页 > news >正文

设计颜色搭配网站网站流量统计分析

设计颜色搭配网站,网站流量统计分析,中鑫华源建设投资集团网站,网站ui设计报价单目录 通过 children 属性结合条件渲染通过 children 和 slot 属性实现具名插槽通过 props 实现具名插槽 在 React 中,并没有直接类似于 Vue 中的“插槽”机制(slot)。但是,React 可以通过 props和 children 来实现类似插槽的功能…

目录

  • 通过 children 属性结合条件渲染
  • 通过 children 和 slot 属性实现具名插槽
  • 通过 props 实现具名插槽

在 React 中,并没有直接类似于 Vue 中的“插槽”机制(slot)。但是,React 可以通过 propschildren 来实现类似插槽的功能,允许你将组件的内容进行灵活插入和替换。

通过 children 属性结合条件渲染

通过 children 来传递任意数量的子元素,然后在组件内部通过位置进行条件渲染,从而实现插槽功能。

Layout 组件通过 children 渲染传递给它的所有子元素,而这些子元素可以是任何内容,类似于 Vue 中的默认插槽。虽然在某些情况下,children 已经是一个数组(例如多个子元素的情况),但 React.Children.toArray 会确保你始终获得一个标准化的数组(过滤掉null、undefined等数据)。

//子组件
const Layout = ({ children }) => {children = React.Children.toArray(children);console.log(children,'children')return (<div className="layout"><header>Header</header><main>{children}</main> {/* 这里的 children 就是父组件传递进来的内容 */}<footer>Footer</footer></div>);
}; 
//父组件
const App = () => {return (<Layout><h1>Hello, React!</h1><p>This is the main content of the page.</p></Layout>);
};

打印出children,就是父组件标签里内容编译成的virtualDOM。

在这里插入图片描述

通过 children 和 slot 属性实现具名插槽

在标签上加slot来标记标签

//父组件
root.render(<><DemoOne title="REACT好好玩哦" x={10}><span slot="footer">我是页脚</span><span>哈哈哈哈</span><span slot="header">我是页眉</span></DemoOne></>
); 

子组件根据children属性中的slot来区分插槽

//子组件
const DemoOne = function DemoOne(props) {let { title, x, children } = props;children = React.Children.toArray(children);let headerSlot = [],footerSlot = [],defaultSlot = [];children.forEach(child => {// 传递进来的插槽信息,都是编译为virtualDOM后传递进来的「而不是传递的标签」let { slot } = child.props;if (slot === 'header') {headerSlot.push(child);} else if (slot === 'footer') {footerSlot.push(child);} else {defaultSlot.push(child);}});return <div className="demo-box">{headerSlot}<br /><h2 className="title">{title}</h2><span>{x}</span><br />{footerSlot}</div>;
};

通过 props 实现具名插槽

显式传递 props 来模拟具名插槽,传递不同的内容到特定的插槽位置

const DemoOne = ({ title, x, children, footer, header }) => {return (<div className="demo-box"><h1>{title}</h1><div>{header}</div> {/* 渲染具名插槽 header */}<div>{children}</div> {/* 渲染默认插槽 */}<div>{footer}</div> {/* 渲染具名插槽 footer */}</div>);
};const App = () => {return (<DemoOne title="REACT好好玩哦" x={10} footer={<span>我是页脚</span>} header={<span>我是页眉</span>}><span>哈哈哈哈</span></DemoOne>);
};

在这里插入图片描述

http://www.dt0577.cn/news/32164.html

相关文章:

  • seo教学视频教程新余seo
  • 绵阳模板网站中国教师教育培训网
  • 网站备案幕布照片怎么算合格sem代运营
  • 贵阳好的网站建设公司360网站推广客服电话
  • 网站优化图片链接怎么做班级优化大师的功能
  • 可以免费看日本黄片的app做网站重庆seo网络推广优化
  • 新乡商城网站建设哪家优惠外贸网站搭建
  • 越秀企业网站建设百度指数app官方下载
  • 卡一卡二卡四卡视频免费观看seo流量排行榜神器
  • 网站建设费用归类公司网页制作教程
  • 办公家具网站模板注册网站怎么注册
  • 大连建设工程信息网下载中心seo外包上海
  • 做任务挣钱的网站聚网页模板代码
  • 网站建设论文模板网络营销策略实施的步骤
  • 房产网站怎么做国外seo比较好的博客网站
  • 东莞网站推广多少钱网络营销策略的特点
  • 网站建站推广制作网站的平台
  • 怎么创建网站域名百度游戏
  • windows 2003做网站青岛招聘seo
  • 网站如何做seo的北京建站
  • 宁波网站制作公司哪家好东莞好的网站国外站建设价格
  • 室内设计和网站建设哪个前景好西安seo工作室
  • 多光营销软件网站整合营销传播理论
  • 网站建设推广公司排名百度搜索风云榜排名
  • 帮一个公司做网站多少钱百度网盘登录入口
  • 苏州做网站的公司免费建站系统
  • 网站服务器购买南昌网站seo外包服务
  • 网站开发要加班吗网站关键词seo优化公司
  • 上海企业建站 免费网络优化工程师前景
  • 外贸门户网站泰安网站建设优化