我看到了一个与我的问题类似的问题,但总体来说是针对SQL数据库的。它说,当您插入数据但在提交之前,仅保存命令并将它们保存在RAM中。只有在提交之后,才会清空RAM,并且数据将存储在数据库中。
但是,我想我注意到将sqlite3与Python配合使用时的行为不同。我在脚本的最后保留了提交。我的程序空间不足并中途中止,但这不是因为RAM已满。它说磁盘空间已满,我确认计算机上的磁盘空间确实已满,其中很大一部分已被数据库文件占用。
我知道我需要更多的磁盘空间来创建该数据库,这不会有问题,但是我想知道,至少在使用sqlite3和Python(如果特殊情况很重要)的情况下,之前我的数据/命令实际上发生了什么提交?换句话说,它们在哪里以及如何存储?不同的数据库是否不同?我是否应该担心直到结束才提交来使用我的所有RAM?
我在 React 官方文档或 blagosphere 上还没有找到任何提及这一点的信息。
我认为当你有多个状态变量时你可以而且通常应该做这样的事情:
function MyComponent() {
const [foo, setFoo] = useState(0);
const [bar, setBar] = useState(1);
return (
<div>
<div onClick={() => setFoo(foo+1)}>{foo}</div>
<div onClick={() => setBar(bar+1)}>{bar}</div>
</div>
);
}
Run Code Online (Sandbox Code Playgroud)
是否允许并鼓励这样做,而不是使用useState一个包含state字段foo和的包罗万象的对象来调用一次bar?如果允许并鼓励这样做,那么useState每次调用时如何知道它是指已存储的foo还是已存储的bar?
我也有基本相同的问题useCallback。我想知道,如果我useCallback在同一个组件中调用两次以创建两个不同的回调,如何知道useCallback我要引用之前定义的函数与创建新函数,并且如果引用已使用的函数,则需要返回记忆的函数的版本,它如何知道两者中的哪一个?特别是如果两个回调具有相同的依赖项列表?