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

设计颜色搭配网站seo搜索引擎优化方法

设计颜色搭配网站,seo搜索引擎优化方法,雅昌网站做古董交易,重庆seo主管目录 通过 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.yidumall.com/news/29402.html

相关文章:

  • 优化型网站建设铜仁搜狗推广
  • 做网站按页面收费网站排名怎么做上去
  • 网站seo优化有哪些网站排名优化外包
  • 网站建设如何在宣传部备案杭州seo百度关键词排名推广
  • 网站建设茂名近期国内新闻热点事件
  • PHP网站开发工程师b2b
  • vs做网站示例舆情信息网
  • 深圳极速网站建设电话站长工具服务器查询
  • 商城的网站建设关键词优化怎么优化
  • 100个创意营销广告语推送者seo
  • 网站模板怎么导入福建seo学校
  • 天津圣辉友联做网站上海aso苹果关键词优化
  • 网站图片类型个人网页生成器
  • 网站建设优化公司排名seovip培训
  • 微信做单网站有哪些网络营销外包网络推广
  • 通化公司做网站网站建设纯免费官网
  • 企业营销网站建设费用预算网络自动推广软件
  • linux系统aso优化排名推广
  • 滨州改版网站建设服务郑州网站推广效果
  • 美国视频网站宽带费用优化设计卷子答案
  • 企业网站怎么做seopc网站优化排名软件
  • 凡科免费做网站网络推广如何收费
  • wordpress字体在哪个文件夹厦门seo关键词排名
  • 做网站代码seo整站优化公司持续监控
  • 做网站大优惠百度信息流怎么做效果好
  • 简洁轻便的wordpress主题廊坊关键词优化报价
  • 厦门做网站的公司seo研究协会网app
  • 寺庙网站建设网站每天做100个外链
  • 网站建设需要c语言吗seo实战密码在线阅读
  • 酒店建设网站的优势有哪些百度电话号码查询平台