Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 对列表项进行回忆录_Javascript_Reactjs_Memoization - Fatal编程技术网

Javascript 对列表项进行回忆录

Javascript 对列表项进行回忆录,javascript,reactjs,memoization,Javascript,Reactjs,Memoization,如果我有一个简单的应用程序,比如: function renderRow(company) { return DOM.li({ className: 'item' }, company.title); } function renderApp(companies) { return DOM.ul({ className: 'list' }, companies.sort(function(a, b) { ret

如果我有一个简单的应用程序,比如:

function renderRow(company) {
return DOM.li({
        className: 'item'
    },
    company.title);
}

function renderApp(companies) {
  return DOM.ul({
        className: 'list'
    },
    companies.sort(function(a, b) {
        return a.votes - b.votes;
    }).map(renderRow))
}
var appModel = getCompaniesJSON(100);
renderComponent(renderApp(appModel), document.body);

我不想在公司名称未更改时重新提交每个列表项-有没有办法为行(li项)实现shouldComponentUpdate功能?

可以通过将
renderRow
的输出移动到单独的
组件来完成。然后,您可以对每行项目使用
shouldComponentUpdate
,检查属性
标题是否已更改:

组件中:

shouldComponentUpdate(nextProps, nextState){
    return nextProps.title !== this.props.title;
}