小编Men*_*tor的帖子

为什么不使用 cookie 而不是 Redux?

我一直在阅读 Redux,它解决了很多问题。但本质上,它只是一个中央“真实”存储。

直觉上,尽管我发现状态仍然通过道具或上下文传递的事实并不优雅。

除了磁盘 i/o 速度,为什么不使用本地 cookie 存储作为中央数据存储?这将消除通过组件传递数据的需要。

我看到的唯一挑战是数据安全,但这并不是所有应用程序的问题。

根据戴夫的评论进行详细说明。我的实际问题更多是关于拥有一个中央 Redux 风格商店的可能性,而无需通过道具或上下文主动传递状态。饼干似乎是一个有趣的探索途径。

快进几年的经验:

  • redux 的重点是不可变的数据流,cookies 更像是一个全局变量
  • 您可以使用 cookie 存储或本地存储 API 来存储数据(请参阅 参考资料react-redux-persist),但您不会在性能方面依赖它
  • 我们无法控制 cookie 处理(由浏览器决定),因此依赖它对于兼容性来说是一个坏主意

cookies flux reactjs redux react-redux

5
推荐指数
1
解决办法
2196
查看次数

防止ES6承诺吞咽错误(不使用.catch)

我不想为我使用的每个承诺键入.catch.如果不这样做,承诺造成的错误是非常无益的.

纯粹为了这个目的使用像蓝鸟这样的整个图书馆让我感到不舒服.

javascript node.js promise ecmascript-6 es6-promise

5
推荐指数
2
解决办法
1880
查看次数

流浪汉-如何检测Windows主机RAM和CPU

我希望我的vagrantfile根据主机规格自动设置CPU和RAM。

我发现以下代码段:

 config.vm.provider "virtualbox" do |v|
      host = RbConfig::CONFIG['host_os']
      # Give VM 1/4 system memory & access to all cpu cores on the host
      if host =~ /darwin/
        cpus = `sysctl -n hw.ncpu`.to_i
        # sysctl returns Bytes and we need to convert to MB
        mem = `sysctl -n hw.memsize`.to_i / 1024 / 1024 / 4
      elsif host =~ /linux/
        cpus = `nproc`.to_i
        # meminfo shows KB and we need to convert to MB
        mem = `grep 'MemTotal' /proc/meminfo | sed …
Run Code Online (Sandbox Code Playgroud)

virtualbox vagrant vagrantfile vagrant-windows

4
推荐指数
1
解决办法
1391
查看次数

TravisCI 在 Node BCrypt 上失败并出现 node-gyp 错误

我正在尝试让我的 Node.js 7 项目在 TravisCI 上工作。一切都在本地运行,但是当 travis 尝试测试项目时,我得到:

gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/home/travis/.nvm/versions/node/v6.9.1/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:276:23)
gyp ERR! stack     at emitTwo (events.js:106:13)
gyp ERR! stack     at ChildProcess.emit (events.js:191:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:215:12)
gyp ERR! System Linux 4.8.7-040807-generic
gyp ERR! command "/home/travis/.nvm/versions/node/v6.9.1/bin/node" "/home/travis/.nvm/versions/node/v6.9.1/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/travis/build/actuallymentor/react-node-boilerplate/node_modules/bcrypt
gyp ERR! node -v v6.9.1
gyp ERR! node-gyp -v v3.4.0
gyp ERR! not ok 
Run Code Online (Sandbox Code Playgroud)

和:

npm ERR! bcrypt@0.8.7 install: …
Run Code Online (Sandbox Code Playgroud)

node.js travis-ci node-gyp

4
推荐指数
1
解决办法
648
查看次数

具有onChange处理程序的无状态React组件:合成事件警告

我正在尝试对有状态组件执行简单的实现,该状态组件的状态由无状态子进程管理.目前,处理程序仅触发console.log.

预期行为: 更新字段时,父组件应触发console.log.

实际行为 setInterest永远不会被触发,而是我收到有关合成事件的错误:

This synthetic event is reused for performance reasons. If you're seeing this, you're accessing the property `nativeEvent` on a released/nullified synthetic event. This is set to null. If you must keep the original synthetic event around, use event.persist().
Run Code Online (Sandbox Code Playgroud)

组件按预期可视化呈现,并且在Webpack的浏览器中我没有得到任何其他错误.

任何帮助将不胜感激.

有状态组件:

// Setting the parameters of the market
export class Parameters extends React.Component {
    // Constructor setting default state
    constructor ( props ) {
        super ( props )
        // Set the state objects
        this.state = …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

2
推荐指数
1
解决办法
2125
查看次数