React与Vue 的声明式 UI 对比原理篇(1)
看下React官网怎么说
React 控制 UI 的方式是声明式的。你不必直接控制 UI 的各个部分,只需要声明组件可以处于的不同状态,并根据用户的输入在它们之间切换。这与设计师对 UI 的思考方式很相似。
聊到 声明式UI 就避不开 命令式UI,那么它们分别是什么意思?
什么是声明式 UI?
声明式 UI 是一种编程范式,开发者只需要描述 UI 应该是什么样子,而不需要关心具体如何实现 UI 的更新。
什么是命令式 UI?我们换种描述
以上的过程直接告诉你如何去实现交互。你必须去根据要发生的事情写一些明确的命令去操作 UI。对此有另一种理解方式,想象一下,当你坐在车里的某个人旁边,然后一步一步地告诉他该去哪。他并不知道你想去哪,只想跟着命令行动。(并且如果你发出了错误的命令,那么你就会到达错误的地方)正因为你必须从加载动画到按钮地“命令”每个元素,所以这种告诉计算机如何去更新 UI 的编程方式被称为命令式编程。
想象一个让用户提交答案的表单:
- 当你向表单输入数据时,“提交”按钮会随之变成可用状态
- 当你点击“提交”后,表单和提交按钮都会随之变成不可用状态,并且会加载动画会随之出现
- 如果网络请求成功,表单会随之隐藏,同时“提交成功”的信息会随之出现
- 如果网络请求失败,错误信息会随之出现,同时表单又变为可用状态
React 的声明式 UI
核心理念:UI = f(state)
React 认为 UI 应该是状态的函数,状态变化时 UI 自动更新。
特点:
1、单向数据流;2、不可变更新;
Vue 的声明式 UI
核心理念:响应式数据绑定
Vue 通过响应式系统自动建立数据与 UI 的绑定关系。
特点:
1、模板语法;2、响应式系统;
今天先介绍到这里,下篇咱们继续探讨。
