由于一些原因,我希望把逻辑和视图分开,如下列伪代码所示,大佬能说说有什么好的解决方案吗?关键字就行,谢谢了!
(ps: react class component 也是视图和逻辑混在一个类里面, 不太希望这样, 还是我的使用姿势不对?)
import React, { useEffect } from "react"
class Person {
name: string
age: number
friends: Person[]
}
class Family {
datas: Person[]
}
class Village {
datas: Family[]
}
// 以上的类为纯逻辑类, 仅进行数据处理, 不含视图渲染
function View() {
const village = new Village()
useEffect(() => {
// Village 泛指一些层级很深的类
// 这儿有一些交互, 然后会修改 village 的一些属性, 和属性的后代属性
// 问题是, 修改了 village 之后, 怎么通知组件更新呢...
}, [village])
return village.datas.map((family) => family.datas.map((person) => render(person)))
}
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.