是一次性从后端拿到组装完整的数据再渲染,还是分模块去调不同的业务接口(或者是其他方式?),也就是数据是前端自己组装的还是后端组装的。如果是前端组装的话,怎么动态去改变页面布局,一定要等到发版或者跨平台技术?如果是后端组装的话,怎么样保证数据还没到前端的时候的用户体验。
脑洞 1: 后端数据组装完成后,用 http stream 先传 metadata,主要是一些模块的元数据,前端先把框架渲染出来,渲染过程中后面的模块数据也接收到了,再渲染具体模块。app 前端只针对模块类型写渲染逻辑和将 metadata 解析成页面的逻辑,不写具体的页面。
脑洞 2:把这些模块再抽象一层,是不是就成了类似 html 的东西了。像 flutter 这种技术,是不是就是新时代的 js 和 html ?
1
liuxu 2021-07-29 23:10:44 +08:00
不知道你说的大厂多大算大,我看 google drive 的接口调用是分模块调用不同业务接口
|
2
3dwelcome 2021-07-30 00:03:23 +08:00
最近手机 QQ 有开源核心代码,用的是 HTML 的 Flex 之类构建语法,但又不是基于 webview 的技术。
可能大厂大神多,组内自己写通讯协议,自己写原生组件,都是驾轻就熟。 |
3
Rocketer 2021-07-30 00:10:45 +08:00 via iPhone
何不再抽象一层?前端先向后端请求逻辑,也就是应该怎么组装数据,然后再根据逻辑请求真正的数据,这样就怎么样都行了
|
5
Obrigado0815 2021-07-30 09:16:09 +08:00
我觉得也是,大厂级别的软件,他们的动态性都很强。
比如,双 11 来了,即使我在不更新软件的情况下,整个首页板块,都会和以往不一样。 请问,这是怎么做到的?还是说,这个首页板块,他们用的是 HTML |
6
3dwelcome 2021-07-30 09:23:51 +08:00
|
7
ykrank 2021-07-30 10:32:59 +08:00
现在一般都是三条路:
自定义动态模板然后原生渲染,只适合固定类型的布局动态化,不逻辑完备,但性能好。 RN 这种 js 逻辑,然后原生控件渲染的。 Flutter,WebView 这种完全自己渲染的。 还有小程序这种动态化邪教,就是 js 逻辑,webview 渲染,两者分开的,相当于第二第三种的混合 |
8
pecopeco 2021-07-30 11:02:23 +08:00
也可能只是预装模块,到了某个时间点本地切换而已
|
9
CrownLeo 2021-07-30 12:23:13 +08:00 via iPhone
@Obrigado0815 #5 我们是这么处理的,App 端只做配置的解析,配置是对整个页面样式以及业务逻辑的抽象,然后配置的生成和下发是在服务端完成的
|
10
Obrigado0815 2021-08-03 16:47:12 +08:00
@CrownLeo “通过不同的配置参数,渲染相对应的页面模块”,那它这个配置参数,岂不是很庞大?配置的时候,岂不是会很抽象;一般用什么方式去创建、产生配置参数的,
|