如何在 Meteor 中使用 PureRenderMixin (React js)

How to use PureRenderMixin (React js) in Meteor

我正在使用 Meteor 1.2 构建一个应用程序并做出反应,并使用 react-meteor-data mixin 从我的发布方法中获取数据。 我认为一个好主意是拥有一个包含所有状态和数据订阅的 "AppWrapper" 组件,它通过 props 传递给 "App" 组件,后者将把所有组件渲染到层次结构...... 虽然这可行,但我希望所有渲染组件都是纯净的并且具有不可变数据。 如何进行?

1)react包里已经有addon了,不知道怎么用?

2) 我应该从 npm 安装它并等待 Meteor 1.3 包系统?

3) 是否可以使用一些不可变的库来实现自定义的 shouldComponentUpdate?

我将感谢有关此主题的任何想法或经验,谢谢

1) 转到第 3 点

2) 转到第 3 点

3) 当然可以!例如:Immutable.js

const AppWrapper = React.createClass({
    mixins: [ReactMeteor.Mixin],

    getMeteorState () {
        return {
            data: Immutable.Map({
                userId: Meteor.userId()
            })
        };
    },

    shouldComponentUpdate (nextProps, nextState) {
        return !this.state.data.equals(nextState.data);
    },

    render () {
        return (
            <App data={this.state.data} />
        );
    }
});

// This is basic example with pure component.
// Of course this might be another component created with 
// React.createClass implementing it's own shouldComponentUpdate method.
const App = ({ data }) => (
    <p>Your userId: {data.get('userId')}</p>
);