Javascript 如何判断是否只有部分数据更改?

Javascript 如何判断是否只有部分数据更改?,javascript,redux,Javascript,Redux,我是ReDux新手,在一个有多个减速机的项目中工作 在subscribe调用/引用的函数中,只要存储区中的任何数据发生更改,就会调用该函数。例如,我有一个待办事项列表和一个存储动画信息的对象,基本上是一个属性列表。如果更新了待办事项,则不希望重新渲染动画对象。如果更新动画属性,则不希望重新渲染待办事项列表 我如何判断哪个数据对象已更改 以下是我在ReDux中订阅数据更改的代码: $(function() { var $todoPane = $('#todopane'); var

我是ReDux新手,在一个有多个减速机的项目中工作

在subscribe调用/引用的函数中,只要存储区中的任何数据发生更改,就会调用该函数。例如,我有一个待办事项列表和一个存储动画信息的对象,基本上是一个属性列表。如果更新了待办事项,则不希望重新渲染动画对象。如果更新动画属性,则不希望重新渲染待办事项列表

我如何判断哪个数据对象已更改

以下是我在ReDux中订阅数据更改的代码:

$(function() {

    var $todoPane = $('#todopane');
    var $animFormPane = $('#animation_form');

    //  Render objects onload.
//  renderTodos($todoPane, APP.store.getState().todos.allTodos);
//  renderAniPropForm($animFormPane, APP.store.getState().animation);

    APP.store.subscribe(function() {
        //  Did some part of the ui change? (sliders that alter the height or width of panes on the page)

        //  Did todos change?
        renderTodos($todoPane, APP.store.getState().todos.allTodos);
        //  Did animation values change?
        renderAniPropForm($animFormPane, APP.store.getState().animation);
        //  Did an object change?

        //  Did an action change?

    });
});

我应该把什么放在评论的地方??值更改?

在Redux中,减少操作将更新单个且唯一可用的状态树,这将强制所有组件在enter reselect(回车重新选择)顶部进行整个渲染。通过使用记忆选择器,您可以记住属性并防止组件重新渲染,只要选择器所关注的状态不变

检测React和Redux应用程序中的更改的标准方法是严格的相等性检查。如果两个变量不相等,则假定它们不同。这就需要你

举个简单的例子:

let lastTodosState, lastAnimationState;

APP.store.subscribe(function() {
    //  Did some part of the ui change? (sliders that alter the height or width of panes on the page)

    const newState = store.getState();

    if(newState.todos.allTodos !== lastTodosState.allTodos) {
        renderTodos($todoPane, newState.todos.allTodos);
    }

    if(newState.animation !== lastAnimationState) {
        renderAniPropForm($animFormPane, newState.animation);
    }

    lastTodosState = newState.todos;
    lastAnimationState = newState.animation;

    //  Did an object change?
    //  Did an action change?
});

如果用户界面层使用React,React Redux connect功能会自动生成相应的组件。

谢谢您的快速回答!很有魅力,当然。注意,除了官方的React Redux库之外,还有许多库可以帮助观察Redux存储订阅。请参阅我的Redux插件目录的和部分,以获取可用的列表。感谢您提供的信息。我没有使用React,只是对这个应用程序使用Redux。但我会查出来以备将来参考。是的,我就是这么说的。React-Redux实现了自己的逻辑,用于区分从存储状态提取的值,但该列表中的LIB实现了类似的方法,独立于React-Redux。请告诉我您为什么拒绝此编辑?