如何理解“用户界面完全可以用嵌套的组件树来描述,而一个组件恰恰可以对应MVVM中的ViewModel”这句话?组件到底是什么意思?
用户界面是很多个组件构成,有些组件可以包含另外的组件,那么整个界面可以看成一个倒置的树。每个组件可以对应一个ViewModel。
组件就是一个独立可复用的原子单元,包括自己所管理的HTML片段和对应的逻辑与样式,同时可以嵌套其他子组件实现更复杂的组件。
组件化开发基于这样一种理念:界面就是数据结构的可视化表达
UI = f(data)
而界面就是组件的组合
UI = f1(data) + f2(data) + f3(data) + ...
所以组件就是函数,给定输入,返回输出。React 组件就是函数式的。
viewmodel 就是实现 data=>UI 映射关系的那个 f
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
如下图,组件就是集成了模板,逻辑和样式的一个东东,它可以在页面内到处复用,自成一个独立的整体。如果把页面比作汽车,组件就可以理解为车轮,方向盘,发动机等等,你的奥迪可以用这个车轮,我的奥拓也可以用。车轮里面也有螺丝,钢圈(子组件),这样一层一层的结构就是嵌套的概念,组件间可以相互嵌套,相互通信。

。
附MVVM基本机制: