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

免费建立网站软件wordpress免插件代码高亮

免费建立网站软件,wordpress免插件代码高亮,免费wordpress托管服务商,建设部建设厅报考网站好的!我将通过几个具体场景的代码示例,展示不同 export default 使用方式的适用情况,并给出推荐实践。 场景 1:基础组件(推荐直接导出) 适用情况:简单组件,无需额外处理 // 方式A:…

好的!我将通过几个具体场景的代码示例,展示不同 export default 使用方式的适用情况,并给出推荐实践。


场景 1:基础组件(推荐直接导出)

适用情况:简单组件,无需额外处理

// 方式A: 直接导出(最简洁)
export default function Button({ children, onClick }) {return <button onClick={onClick}>{children}</button>;
}// 方式B: 先声明后导出(略显冗余)
function Button({ children, onClick }) {return <button onClick={onClick}>{children}</button>;
}
export default Button;

场景 2:需要 HOC 包装的组件

适用情况:需要被 memo/withRouter 等包裹

import { memo } from 'react';// 1. 先声明组件
function ExpensiveList({ items }) {return (<ul>{items.map(item => <li key={item.id}>{item.text}</li>)}</ul>);
}// 2. 用memo包裹后导出
export default memo(ExpensiveList);

场景 3:需要添加静态属性的组件

适用情况:需要给组件附加 propTypes/defaultProps

import PropTypes from 'prop-types';// 1. 先声明组件
function Avatar({ src, size }) {return <img src={src} style={{ width: size }} alt="User Avatar" />;
}// 2. 添加静态属性
Avatar.propTypes = {src: PropTypes.string.isRequired,size: PropTypes.number
};
Avatar.defaultProps = {size: 40
};// 3. 最后导出
export default Avatar;

是的!使用 const 声明组件时,你可以直接在声明时附加静态属性,这样可以更紧凑地组织代码。以下是优化后的写法:

优化版本(推荐)

import PropTypes from 'prop-types';// 用 const 声明并立即附加属性
const Avatar = ({ src, size }) => (<img src={src} style={{ width: size }} alt="User Avatar" />
);// 直接在同一个语句块内添加静态属性
Avatar.propTypes = {src: PropTypes.string.isRequired,size: PropTypes.number
};
Avatar.defaultProps = {size: 40
};export default Avatar;

进一步简化(ES2022+ 支持)

如果你使用的是现代 JavaScript(ES2022+),还可以用 类字段(class fields) 风格的静态属性:

const Avatar = ({ src, size = 40 }) => (<img src={src} style={{ width: size }} alt="User Avatar" />
);// 类字段风格(需确保编译环境支持)
Avatar.propTypes = {src: PropTypes.string.isRequired,size: PropTypes.number
};export default Avatar;

关键区别说明

特性function 声明写法const 箭头函数写法
Hoisting可提升(可在声明前调用)不可提升(必须先声明后使用)
静态属性必须在声明后单独附加可在同一代码块内附加
this 绑定有自己的 this 上下文继承外层 this(通常为 undefined
适用场景需要组件名称在文件内可提升时使用现代 React 项目的推荐写法

为什么推荐 const 写法?

  1. 更符合函数式编程风格(React 组件本质是函数)
  2. 避免意外的 this 绑定问题
  3. 与 Hooks 风格更一致
  4. 代码组织更紧凑(特别是配合现代工具链时)

⚠️ 注意:如果组件中需要使用 forwardRef,则必须用 const 声明:

const Avatar = React.forwardRef((props, ref) => { ... });

场景 4:需要调试中间状态的组件

适用情况:开发时可能需要临时打印 props

// 1. 先声明组件
function UserCard(props) {// 开发时调试if (process.env.NODE_ENV === 'development') {console.log('UserCard props:', props);}return <div>{props.username}</div>;
}// 2. 导出前可添加其他逻辑
export default UserCard;

场景 5:动态导出不同组件

适用情况:根据条件导出不同实现

// 1. 声明多个组件
function MobileLayout() { return /*...*/ }
function DesktopLayout() { return /*...*/ }// 2. 根据条件动态导出
export default window.innerWidth < 768 ? MobileLayout : DesktopLayout;

最佳实践总结

场景推荐写法原因
普通组件export default function Comp() {}简洁直观
需要包装的组件先声明后导出 + HOC便于扩展
需要静态属性先声明后导出方便添加属性
需要调试先声明后导出便于插入调试代码
动态导出先声明后导出灵活控制导出内容

通用建议

  1. 项目内保持统一风格
  2. 80% 的情况直接用 export default function 即可
  3. 当看到需要 “加工” 组件时,切换到先声明后导出模式

是否需要我针对某个具体场景展开更详细的实现?


文章转载自:

http://uXPdUx9Q.frcxx.cn
http://JQCjr5um.frcxx.cn
http://lDz5ukiw.frcxx.cn
http://RKgrTWYy.frcxx.cn
http://IBzqT4si.frcxx.cn
http://XakNVHSO.frcxx.cn
http://m3lHq0gW.frcxx.cn
http://KGDFioVB.frcxx.cn
http://ABjbYUtg.frcxx.cn
http://go77FKo8.frcxx.cn
http://cZCHnBOz.frcxx.cn
http://fix7nhe0.frcxx.cn
http://c54rM8ze.frcxx.cn
http://q3kRZwN5.frcxx.cn
http://zf27DMSg.frcxx.cn
http://fVICDZQp.frcxx.cn
http://O1scbIfd.frcxx.cn
http://TrhvR0pa.frcxx.cn
http://5hQFNZlW.frcxx.cn
http://BwqgPksX.frcxx.cn
http://ulLrb2w4.frcxx.cn
http://wPCnkwqU.frcxx.cn
http://lHPQ8siI.frcxx.cn
http://uKcoYat7.frcxx.cn
http://sgBRaSGD.frcxx.cn
http://4VKA5xBL.frcxx.cn
http://DrWIDrGb.frcxx.cn
http://LInoqtx4.frcxx.cn
http://vcuoPgqM.frcxx.cn
http://qD6rWdcT.frcxx.cn
http://www.dtcms.com/wzjs/722035.html

相关文章:

  • 苏州网站建设-中国互联住房和城乡建设部网站预售证
  • 免费注册com的网站百度搜索显示网站logo
  • 别人做的网站打不开专业做旅游网站
  • 明星网站设计大连专业做网站
  • 网站图标做多大好网站建设seo优化推广
  • 创意型网站wordpress网址设置
  • 网站建设多少费用如何在电脑上做网站
  • 网站世界排名怎么做合肥公司网站建设多少费用
  • f1意大利站最新排名有没有什么推荐的网站
  • 什么网站可以做设计兼职软件项目管理过程五个阶段
  • wordpress 全站密码网站建设华科技
  • 简述网站建设基本过程自适应网站欣赏
  • 德吉机械东莞网站建设wordpress手机验证码插件
  • 企业seo网站推广公司主页网站怎么做
  • wordpress站点地址没有凡客app官网
  • 网站开发工资有多少网络购物平台
  • 深圳网站制作公司流程图学校网站建设工作总结
  • server2008网站建设it运维需要学什么
  • 从域名到网站网站图片链接到视频怎么做
  • 怎么做淘宝客网站和APP广告制作公司注册
  • 动态视频素材网站成都网站建设全平台
  • 网站建设领导小组dw网页制作试题
  • 企业所得税优惠政策最新2023规定湖北seo整站优化
  • 靖江市住房和城乡建设局的网站安徽省建设厅到底哪个网站
  • 360免费自助建站哈尔滨公共资源交易网建设工程
  • 南京自助建站模板单页面网站做百度推广
  • 网站开发需要多少费用网站评论怎么做的
  • 企业建站个人建站源码智慧校园学生端登录平台
  • 网站建设借鉴春季高考网站建设
  • 网站开发+进度表开发程序员培训班