immutable.js相关内容

Redux-Form V6 isDirty(和isPristine)选择器不会在状态更改时触发重新呈现

我正在尝试检测父组件中的表单状态是否已更改,以便只有在表单值已更改时才能显示提交按钮。 初始呈现如预期显示FALSE,但更改这些值不会触发使用新的值重新呈现。 import React from 'react' import { isDirty } from 'redux-form' import { connect } from 'react-redux' { ..
发布时间:2022-09-03 17:02:32 其他开发

为什么 JavaScript 中的不变性如此重要(或需要)?

我目前正在研究 React JS 和 React Native 框架.在中途我遇到了 Immutability 或 Immutable-JS 库,当时我正在阅读关于Facebook 的 Flux 和 Redux 实现. 问题是,为什么不变性如此重要?改变对象有什么问题?这不是让事情变得简单吗? 举个例子,让我们考虑一个简单的新闻阅读器应用,其起始屏幕是新闻标题的列表视图. 如果我 ..

不可变 JS 比较嵌套结构

我有 2 个嵌套结构 newState 和 newState1. 但是当我比较它们时,equals() 或 Immutable.is() 返回 false.这些结构中的值相同. 如何正确比较newState和newState1? var grid = {可编辑:假,小部件:[{name: '一些小部件',类型:'列表',默认数据源:“每日",数据源: {}}, {名称:'一些小部件1 ..
发布时间:2022-01-25 09:12:55 前端开发

map() 函数内的索引

我缺少如何使用 Immutable.js 中的 List 在 map 函数中获取索引号的选项: var list2 = list1.map(mapper => { a: mapper.a, b: mapper.index??? }).toList(); 文档显示 map() 返回 Iterable.有什么优雅的方法可以满足我的需求吗? 解决方案 您将能够通过 map 方法的第二 ..
发布时间:2022-01-02 13:24:22 前端开发

在 Redux 中重写状态

在 redux 中,我知道状态是不可变的,当您创建新状态时,您实际上是在使用新信息更新对象,然后完全重写状态. 今天我有一个想法,我不确定它有多愚蠢. 不断重写状态在计算上是否昂贵?我知道这是 Redux 的主要范式之一,但我想知道从内存和空间的角度来看这是否有意义. 解决方案 你可以在 Redux 中改变状态,但你不应该不惜任何代价这样做,因为你会在 Redux 反模式 ..
发布时间:2021-12-29 11:53:04 其他开发

如何在 Immutablejs 和 Redux 以及 Flux 和 React 中设置 Ember 之类的计算属性

我习惯于在 Ember 对象模型中计算属性.这是指定依赖于其他属性的计算属性的一种便捷方式. 说 fullName 取决于 firstName 和 lastName,我可以将计算属性设置为函数 computeProperties 并调用computeProperties 每次我进行更改. 示例: function computeFullName(state) {const fullN ..
发布时间:2021-12-21 18:40:52 其他开发

React/Redux 中树结构和 shouldComponentUpdate 的性能问题

我对 React、Redux 和 ImmutableJS 还很陌生,遇到了一些性能问题. 我有一个大的数据树结构,我目前在这个结构中存储为一个平面列表: 新地图({1:新节点({编号:1,文本:'根',儿童:[2,3]}),2:新节点({编号:2,文本:'孩子 1',儿童:[4]}),3:新节点({编号:3,文字:'孩子 2',孩子们: []}),4:新节点({编号:4,text: '孩子 ..
发布时间:2021-12-21 18:33:17 其他开发

如何更新减速器中嵌套对象的值?

我已经建立了这样的状态 const 列表 = {类别:{专业的: {活动:假,名称: [{编号:1,名称:“高尔夫",活动:假},{编号:2,名称:“终极飞盘",活动:假}]}} 在我的操作中,我添加了一个 ID 选项,因此我想在用户单击该选项时更改活动状态 我使用的是 Immutable JS,虽然没有与之结婚.我想知道如何定位对象的 id 并在减速器中更新其活动状态?我也愿意接受关于 ..
发布时间:2021-12-21 18:23:42 其他开发

React-Redux 复杂(深层)状态对象

鉴于我最初的 redux 状态是: const state = {当前视图:'ROOMS_VIEW',导航栏链接:列表([{名称:'房间',键:'ROOMS_VIEW'},{名称:'开发',键:''}]),roomListsSelected: {group: 0, item: 0},房间列表:[{名称:“过滤器",扩展:真实,列表项:[{ icon: 'images/icon-warning.s ..
发布时间:2021-12-21 18:23:21 其他开发

为什么不可变性在 JavaScript 中如此重要(或需要)?

我目前正在研究 React JS 和 React Native 框架.在中途我遇到了 Immutability 或 Immutable-JS 库,当时我正在阅读有关Facebook 的 Flux 和 Redux 实现. 问题是,为什么不变性如此重要?改变对象有什么问题?这不是让事情变得简单吗? 举个例子,让我们考虑一个简单的新闻阅读器应用,其打开屏幕是新闻标题的列表视图. 如果我 ..

使用Immutable.js的mergeDeep()时丢失属性

我正在尝试使用 mergeDeep合并以下2个不可变地图() of Immutable.js import {期望}从'chai';从'immutable'导入Immutable;describe.only('Test',()=> {it('应该返回正确的合并对象',()=> {const current = Immutable.Map({一种: [],b:{},C: {'c01':{键:"c ..
发布时间:2021-05-15 20:45:57 前端开发

叶状组件中的connect()是React + redux中反模式的标志吗?

目前正在研究React + Redux项目. 我还使用 normalizr 来处理数据结构和 性能 由于在顶部具有较大的连接组件,可以向下传输数据,因此实际上会对性能产生负面影响.这是因为每次状态更改都会更新顶级引用,然后重新渲染每个组件,并且React将需要对所有组件执行协调. Redux通过假定所连接的组件是纯净的来优化它们(即,如果prop引用相同,则跳过重新渲染).如果 ..
发布时间:2021-05-15 20:45:54 前端开发

如何实现不变性

我正在尝试了解 trie 等实现了不可变性,这与JS中的不可变性有关.我了解应该如何进行重要的结构共享. 我的问题是说你有一个像这样的图结构: a-b|C|d-h|e-我-l|f-j-m|克-克-n 因此,您将 x 添加到系统中.我将尝试两种不同的方式: a-b|C|d-h-x|e-我-l|f-j-m|克-克-n 那只是被添加为一个叶子节点. a-b|C|d-h|X|e- ..
发布时间:2021-05-13 19:04:56 前端开发

immutable.js #get如何工作?

我知道Map()如何创建一个空的Map对象,但是get在这里如何工作?这是否意味着它将从active键中获取值,如果那里没有键,它将创建一个空的Map对象?文档在哪里? const activeSelector = createSelector( rootSelector, (root) => root.get('active', Map()) ); 解决方案 是的,这就是它的 ..
发布时间:2020-11-27 04:50:15 前端开发