我正在基于React构建CMS。有几次,我遇到了我在一个页面上遇到的问题,用户可以在该页面上添加和删除内容。此内容本身具有可以更改的属性。我对应该在哪里保留所有这些属性的状态感到非常困惑。
例如:我有一个类似博客的页面,用户可以在其中添加和删除短消息更新。每个新闻更新都有一个private static bool AreOverlapped(Rectangle left, Rectangle right) {
//TODO: put relevant code here
}
...
Rectangle boxRect = new Rectangle(
pbArray[x,y].Parent.PointToScreen(pbArray[x,y].Location),
pbArray[x,y].Size);
bool hasOverlappedLabel = this
.Controls // <- Labels that are directly on the form only
.OfType<Label>()
.Select(lbl => new Rectangle(
lbl.Parent.PointToScreen(lbl.Location),
lbl.Size
))
.Any(rect => AreOverlapped(rect, boxRect));
,title
和其他一些属性,例如content
。
我所看到的所有状态都可以由category
组件(包含所有帖子)拥有,或者BlogEditor
仅知道BlogEditor
的帖子和帖子本身拥有其内容的状态(并与API通信)。 React的最佳实践是什么?
答案 0 :(得分:1)
这将取决于个人喜好,因此本质上没有“最佳实践”。很难在上下文很少的情况下进行呼叫,但是我一直发现不必要地将数据从父级传递到子级很烦人,通常最好与“ BlogEditor一起使用,只知道帖子和帖子的ID”自己拥有其内容的状态(并与API通信)。
但是,如果这意味着您要制作例如。来自10个子组件的每个组件有10个API请求,而不是来自父组件的1个API请求,那么您可能想选择1个API请求。
因此,答案是“根据情况拨打电话,没有明确的答案”。