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