gpt4 book ai didi

Reactjs:使用 React 组件比普通函数有优势吗?

转载 作者:行者123 更新时间:2023-12-03 13:24:59 24 4
gpt4 key购买 nike

this sample为例来自 React.js 文档

var Avatar = React.createClass({
render: function() {
return (
<div>
<ProfilePic username={this.props.username} />
<ProfileLink username={this.props.username} />
</div>
);
}
});

var ProfilePic = React.createClass({
render: function() {
return (
<img src={'http://graph.facebook.com/' + this.props.username + '/picture'} />
);
}
});

var ProfileLink = React.createClass({
render: function() {
return (
<a href={'http://www.facebook.com/' + this.props.username}>
{this.props.username}
</a>
);
}
});

React.render(
<Avatar username="pwh" />,
document.getElementById('example')
);

对于这样的情况,组件没有状态,并且如果我要使用jsx:仅使用函数而不是创建组件有什么缺点(性能或其他方面)吗? IE,将其简化为这样的内容(用 ES6 编写)

var { a, div, img } = React.DOM;

var Avatar = (username) =>
div({}, ProfilePic(username), ProfileLink(username));

var ProfilePic = (username) =>
img({src: `http://graph.facebook.com/${username}/picture`});

var ProfileLink = (username) =>
a({href: `http://www.facebook.com/${username}`}, username);

React.render(Avatar(username), document.getElementById('example'))

最佳答案

如果您不使用 JSX,并且不需要核心类的任何运行时功能(例如 componentDidMount 等),那么创建不必要的类没有任何优势,事实上,总体上它会(稍微)更高效。

通过创建具体(但非常简单)的包装函数(例如使用 Avatar 所做的那样),它可以提高代码的可读性。但是,如果您确实开始使用 JSX,则需要切换到 createClass 以便正确传递属性(因为初始属性不会像代码中那样传递给构造函数) .

关于Reactjs:使用 React 组件比普通函数有优势吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28475060/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com