Javascript 反应-管理UI状态
我正在创建一个UI组件,它应该能够维护自己的UI状态,但通过道具从父组件接收数据。这是一个常见的场景,那么什么才是最佳实践呢Javascript 反应-管理UI状态,javascript,reactjs,user-interface,Javascript,Reactjs,User Interface,我正在创建一个UI组件,它应该能够维护自己的UI状态,但通过道具从父组件接收数据。这是一个常见的场景,那么什么才是最佳实践呢 示例:目录树组件。组件通过道具从父组件接收其结构和文本内容。但是,树组件应自行管理节点的可见性状态(已关闭/已展开)。我是否应该将道具复制到接收/更新时的状态,并在那里添加可见性数据?我的印象是,从道具初始化状态是一种糟糕的做法。可能是这样的吗 在这种情况下,您不需要将道具复制到本地状态:) 如果必须修改或转换道具数据,请尝试使用“计算属性”: get someValu
示例:目录树组件。组件通过道具从父组件接收其结构和文本内容。但是,树组件应自行管理节点的可见性状态(已关闭/已展开)。我是否应该将道具复制到接收/更新时的状态,并在那里添加可见性数据?我的印象是,从道具初始化状态是一种糟糕的做法。可能是这样的吗 在这种情况下,您不需要将道具复制到本地状态:) 如果必须修改或转换道具数据,请尝试使用“计算属性”:
get someValueFromProps() {
return this.props.value.replace('foo', 'bar')
}
本地状态越少,组件越好,因为状态会产生bug,除非程序员注意到它们。好吧,这基本上就是您要寻找的,但仍然需要处理事件。哦,我的问题似乎是我没有一个单独的节点组件。如果每个节点都控制其可见性,而不是试图控制树组件中所有节点的可见性,则更为清晰。谢谢你指出这一点!:)