我有这样的树结构数据:
[{
id: 54,
name:123,
children: [{
id: 54,
name:123,
children: [{
id: 154,
name:1234,
children []...
}]
}]
}, {
...
}]
Run Code Online (Sandbox Code Playgroud)
我正在使用Angular 2.据我所知,无论何时输入发生变化,您的变化检测策略都会发生变化onPush.
为了优化树结构更新(例如,在嵌套级别切换节点或更改此类节点的任何属性),我使用了Immutable.
Immutable如何帮助我优化我的更新?我读到,当数据发生变化时,Immutable会重用旧数据中的引用来构造新对象.
如何有效地使用不可变数据结构来更新嵌套级别的节点?
keyPath任何节点.id属性值,可用于查询树数据(但是如何?)withMutationsAPI,但还有其他有效的方法吗?深层复制所有内容,然后修改新构造的对象:
var newState = deepClone(oldState) // deep copy everything and construct a new object
newState.nodes.forEach(node => {
if(node.id == 54) {
node.id = 789;
}
})
Run Code Online (Sandbox Code Playgroud)我想要实现的内容:
var newState = …Run Code Online (Sandbox Code Playgroud)我正在使用业力进行单位测试我的角度2应用程序.我有以下目录结构 -
??? src/
??? index.js
??? index.js.text
??? index.test.js
??? README.txt
??? startuptest.js
??? lib/
| ??? util.js
| ??? util.test.js
| ??? filters/
| ??? kalman.js
| ??? lowpass.js
??? test/
| ??? main.js
| ??? lib/
| ??? filters.js
| ??? util.js
??? vendor/
??? jquery.js
??? three/
??? three.js
??? three.fps.js
Run Code Online (Sandbox Code Playgroud)
我想排除我的所有文件
src/lib/!(filters)/**
Run Code Online (Sandbox Code Playgroud)
从报道报告.但我想保留目录其余部分的所有文件
我试过了,
{src/**, src/lib/!(filters)/**}/!(*.spec!).js : coverage
Run Code Online (Sandbox Code Playgroud)
但它正在跳过一切.
这该怎么做?
javascript testing karma-runner karma-jasmine karma-coverage
我只是在阅读https://coderwall.com/p/jdybeq/the-importance-of-component-keys-in-react-js上的文章时感到疑惑.
它有一个简单的小提琴代码,它说 - 如果你没有唯一的常量键,你可能最终会进入
在下面的套装中相当令人困惑 -