Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

doc: homepage #55

Merged
merged 88 commits into from
Apr 25, 2021
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
Show all changes
88 commits
Select commit Hold shift + click to select a range
7171fc9
chore: add docs
zhangyuang Apr 6, 2021
e522b29
chore: add docs
zhangyuang Apr 6, 2021
5d31b8f
chore: docs (#46)
dellyoung Apr 12, 2021
3ac0b99
chore: docs
yiming29 Apr 13, 2021
34eb0f7
docs: update docs
zhangyuang Apr 14, 2021
a3d7936
update
zhangyuang Apr 14, 2021
e1c8663
update
zhangyuang Apr 14, 2021
7955eb1
chore: update
zhangyuang Apr 14, 2021
388fe77
chore: docs code light
yiming29 Apr 17, 2021
dce3815
chore: md文档code样式优化
yiming29 Apr 18, 2021
ab63650
chore: md文档code样式优化
yiming29 Apr 18, 2021
57aa465
chore: md组件侧边菜单done
yiming29 Apr 18, 2021
c01fcb9
update
zhangyuang Apr 19, 2021
35f0417
update
zhangyuang Apr 19, 2021
2f6c459
update
zhangyuang Apr 19, 2021
00c7972
update
zhangyuang Apr 19, 2021
ea0a579
chore: 字体优化
yiming29 Apr 19, 2021
bc70266
feat: add vite-raw-plugin
zhangyuang Apr 19, 2021
a60e1d3
chore: table css
yiming29 Apr 19, 2021
04c90cb
chore: table css
yiming29 Apr 19, 2021
bc7e266
chore: add f.yml
zhangyuang Apr 19, 2021
5405f1b
chore: update config
zhangyuang Apr 19, 2021
21a0d79
docs: update
zhangyuang Apr 19, 2021
3c6dc8e
chore: add docs vite.config
zhangyuang Apr 19, 2021
1593401
docs: 文档更新
zhangyuang Apr 19, 2021
03798b3
chore: add develop & started
Apr 20, 2021
53b4f4e
docs: update demo.md
zhangyuang Apr 20, 2021
a37dbea
chore: docs css
yiming29 Apr 20, 2021
7fa80bf
Merge branch 'doc/homepage' of github.com:ykfe/ssr into doc/homepage
yiming29 Apr 20, 2021
aada738
chore: docs css
yiming29 Apr 20, 2021
6d60383
docs: update demo.md
zhangyuang Apr 20, 2021
6ccc4b7
docs: 完善文档
zhangyuang Apr 20, 2021
cc39fbb
chore: docs css
yiming29 Apr 20, 2021
d041b5c
Merge branch 'doc/homepage' of github.com:ykfe/ssr into doc/homepage
yiming29 Apr 20, 2021
77791dc
docs: add fetch.md
zhangyuang Apr 20, 2021
2b3d580
feat: 官网首页
Apr 21, 2021
566a63b
Revert "chore: add develop & started"
Apr 20, 2021
4bd7441
feat: 官网首页
Apr 21, 2021
c3f558c
chore: update
zhangyuang Apr 21, 2021
002605c
docs: update readme.md
zhangyuang Apr 21, 2021
adc279b
docs: update
zhangyuang Apr 21, 2021
6f3dbd3
feat: 官网首页样式
Apr 21, 2021
93debd7
docs: update
zhangyuang Apr 21, 2021
213221f
docs: update
zhangyuang Apr 21, 2021
33bd406
fix: menu
yiming29 Apr 21, 2021
5ab4064
feat: 适配移动端
yiming29 Apr 21, 2021
8fa6b42
chore: 组件通信
yiming29 Apr 21, 2021
91de301
docs: update plugin.md
zhangyuang Apr 21, 2021
85ac3c2
chore: 组件通信
yiming29 Apr 22, 2021
7c8dd03
Merge branch 'doc/homepage' of github.com:ykfe/ssr into doc/homepage
yiming29 Apr 22, 2021
1ec9ed3
chore: 组件通信
yiming29 Apr 22, 2021
e56bfb9
chore: 组件通信
yiming29 Apr 22, 2021
fec52a1
chore: 组件通信
yiming29 Apr 22, 2021
b458832
docs: add config.md
zhangyuang Apr 22, 2021
7c6212a
chore: update
zhangyuang Apr 22, 2021
03e36ea
chore: update
zhangyuang Apr 22, 2021
a815655
chore: update
zhangyuang Apr 22, 2021
d361deb
feat: 上一篇/下一篇 逻辑优化
yiming29 Apr 22, 2021
672542d
feat: 上一篇/下一篇 逻辑优化
yiming29 Apr 22, 2021
70d6ffb
feat: 首页
Apr 23, 2021
fc95f47
fix: 🐛 header 路由高亮 (#54)
SuperHuangXu Apr 24, 2021
d667518
docs: update config
zhangyuang Apr 24, 2021
3c646d3
feat: 移动端适配
Apr 24, 2021
164e0f6
docs: update config
zhangyuang Apr 24, 2021
463dbd8
docs: update config
zhangyuang Apr 24, 2021
17ee531
fix: 样式fix
yiming29 Apr 24, 2021
72ab36c
Merge branch 'doc/homepage' of github.com:ykfe/ssr into doc/homepage
yiming29 Apr 24, 2021
f41e3a7
docs: update config
zhangyuang Apr 24, 2021
d68d037
docs: update config
zhangyuang Apr 24, 2021
3f5be3f
docs: update config
zhangyuang Apr 24, 2021
52b6c93
feat:补充vite文档
Apr 24, 2021
e0677ec
docs: update config
zhangyuang Apr 24, 2021
62aae7d
feat: home page update
Apr 24, 2021
955e43b
docs: update communication.md
zhangyuang Apr 24, 2021
f51aa51
chore: add csr
Apr 24, 2021
77c8db1
Merge branch 'doc/homepage' of https://github.com/ykfe/ssr into doc/h…
Apr 24, 2021
b4a4eca
docs: update communication.md
zhangyuang Apr 24, 2021
bfae65e
docs: update communication.md
zhangyuang Apr 24, 2021
3609d7f
docs: update img
zhangyuang Apr 24, 2021
38fdb75
docs: update img
zhangyuang Apr 24, 2021
3ac7146
docs: update img
zhangyuang Apr 24, 2021
e3d6635
docs: update img
zhangyuang Apr 24, 2021
c6c2cb5
docs: update img
zhangyuang Apr 24, 2021
437499f
docs: update img
zhangyuang Apr 24, 2021
65e2a9b
docs: update img
zhangyuang Apr 24, 2021
8a5725c
feat: update style
Apr 25, 2021
24e6fa4
fix: docs菜单优化
yiming29 Apr 25, 2021
8d89c77
chore: update homepage
zhangyuang Apr 25, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added docs/public/images/homepage.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion docs/web/config/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ export const webSiteConfig = {
label: '查看文档',
path: '/docs/why'
},
imgUrl: '/images/logo.jpeg'
imgUrl: '/images/homepage.png'
},
secondFloor: {
title: '为什么要选择 SSR',
Expand Down
4 changes: 2 additions & 2 deletions docs/web/markdown/api/config.md
Original file line number Diff line number Diff line change
Expand Up @@ -223,8 +223,8 @@ module.exports = {
}
```

2. 我们通过 `chainWebpackCobfig` 的方式来让用户可以修改默认配置
2. 我们通过 `chainWebpackConfig` 的方式来让用户可以修改默认配置

但绝大部分情况下你不需要去修改默认的配置。我们默认的配置是基于 `create-react-app` 生成的配置上做了一些优化。已经极力做到最优。如果确定需要修改默认配置,应该先看看配置有无提供额外选项直接设置,而不是通过 `WebpackChain` 工具去重新设置规则。这样极易导致错误。
但绝大部分情况下你不需要去修改默认的配置。我们默认的配置是基于 `create-react-app` 生成的配置上做了一些优化。已经极力做到最优。如果确定需要修改默认配置,应该先看看配置有无提供额外选项直接设置例如 `css.loaderOptions` ,而不是通过 `WebpackChain` 工具去重新设置规则。这样极易导致错误。

我们后续可能会兼容一些 `vue-cli` 支持的配置,但不是全部。我们并不打算做成大而全的工具这样只会变成大黑盒。配置越多只会增加错误出现的可能性。参考 `vue-cli` 工具 400多个文件,3w 行源码 580个待解决 `issue`。
13 changes: 5 additions & 8 deletions docs/web/markdown/why.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,23 +106,20 @@

## 方案对比

与 `Next.js/Nuxt.js` 等框架的对比,详细的代码层面技术细节对比可以查看本人在2020年 [Node.js party 上所做的分享](https://github.com/zhangyuang/2020-NodeParty-PPT),从以下 9 个技术细节方面与 Next/Nuxt/Easy-team 等等框架的做法进行对比
相比于此 PPT 介绍的 2020 年的版本,我们最新的版本在此基础之上又做了许多优化。包括插件化的改造以及支持 `Vite`,优化渲染逻辑等等。相比于 Next/Nuxt 的一堆 [issue](https://github.com/vercel/next.js/issues), 当你深度使用本框架时你会发现你几乎不会遇到什么问题。
与 `Next.js/Nuxt.js` 等框架的对比,详细的代码层面技术细节对比可以查看本人在2020年 [Node.js party 上所做的分享](https://github.com/zhangyuang/2020-NodeParty-PPT),从以下 9 个技术细节方面与 `Next/Nuxt/Easy-team` 等框架的做法进行对比
相比于此 PPT 介绍的 2020 年的版本,我们最新的版本在此基础之上又做了许多优化将会在本文档进行讲述。包括插件化的改造以及支持 `Vite`,优化渲染逻辑等等。相比于 `Next/Nuxt` 的一堆 [issue](https://github.com/vercel/next.js/issues), 当你深度使用本框架时你会发现你几乎不会遇到什么问题。无论如何,仔细阅读本文档,你会对服务端渲染应用有更加深度的认知

以下简单介绍一下比较显著的优点

- 优先考虑 `Serverless`,我们为应用在 `Serverless` 场景使用做了诸多优化包括内置发布命令一键发布到多个平台,以及对 `Serverless` 场景下的代码包大小优化,事实上本文档的源代码便是直接用本框架进行开发以及部署的
- 轻量,核心源代码 2400 行 vs Next.js 18w 行 vs Nuxt.js 2w行,简洁的核心代码意味着更少的黑盒以及更少的性能损耗,事实上我们的性能等于直接调用框架提供的原生 API 无任何中间层
- 最轻量级的方式支持 [Vite](./features$vite)
- 没有恶心的 `.next`, `.nuxt` 这种隐藏文件夹包含着几万行通过 `模版渲染/Webpack` 打包出来的可读性极差的代码,当你的应用出错时,你几乎无法从这些隐藏文件中获得任何有效信息
- 接地气,在 SSR 场景使用 UI 框架是一件不简单的事情,我们内置对世界上最流行的 UI 框架 ant-design 的支持。无需用户做额外配置
- 接地气,在 `SSR` 场景使用 `UI 框架`是一件不简单的事情,我们内置对世界上最流行的 UI 框架 `ant-design` 的支持。无需用户做额外配置
- 没有传统模版引擎,多数开发者是都十分厌恶使用传统模版引擎且需要引入额外的库和学习成本。我们没有使用类似于 `nunjucks` `ejs` 这种模版引擎,根据场景 `All in JSX` 或者 `Vue SFC` 来编写 html 布局
- 没有 `style-loader`,不存在本地开发使用 style 标签,线上环境使用独立 css 文件这种开发体验割裂的情况。我们统一使用独立的 css 文件且支持 HMR 和动态加载
- 风格统一,无论是 React/Vue 运行的本质始终都是 js,我们在两种框架的 SSR 实现思路一模一样,实现代码的高度复用,使用本框架无论是从 React 切换成 Vue 或者反过来都十分轻易
- 风格统一,无论是 `React/Vue2/Vue3` 运行的本质始终都是 `js`,我们在这些场景的 SSR 实现思路一模一样,实现代码的高度复用,使用本框架无论是从 `React` 切换成 `Vue` 或者反过来都十分轻易
- 功能丰富,UI 框架、代码分割、HMR、TS、Serverless、SSR 降级 CSR 开发所需要的功能应有尽有
- 示例丰富,默认示例 cover 大多数真实线上应用场景,包含 服务端框架选择、前端调用 Node.js 接口的方式、前端页面路由跳转的数据获取,应用部署等所有功能用例在 example 中都有体现。我们拥有丰富的线上大规模 SSR 应用开发经验,用户使用过程中遇到的任何问题都有策略解决。
- 没有 runInNewContext,我们不像其他框架的做法一样使用 vm 模块创建上下文来解析服务端 bundle,所以我们的性能是极高的。
- 没有 [runInNewContext](http://nodejs.cn/api/vm.html#vm_script_runinnewcontext_contextobject_options),我们不像其他框架的做法一样使用 vm 模块创建上下文来解析服务端 bundle,所以我们的性能是极高的。

## 总结

个人看法来说,我并不喜欢 `Next/Nuxt` 等设计理念高度 template 化的框架。虽然要做好一个优秀的 SSR 框架非常不容易有许多细致的点需要关注,但我仍然认为它们把这件事情做的过于复杂了。除了具有除了巨无霸级别的源码以及极度黑盒的内部运行机制以外。在性能以及扩展性方面都是灾难性的。例如想要接入 `Vite`,或者做渲染降级在这些框架上都是非常困难的一件事。举个例子一个非常简单的需求我需要不同的页面渲染不同的 `meta` 标签以及 `title` 等信息,在大部分情况下都需要配合使用 [react-helmet](https://www.npmjs.com/package/react-helmet) 或者 `next/head` 这些库来完成。而仅仅这些库的复杂度本身就比整个 `ssr` 框架的复杂度都要高。而在 `ssr` 框架,要完成这个逻辑是非常简单的无需使用任何第三方模块。同样在整个 `ssr` 框架的实现过程,我们没有新造任何轮子。任何功能的实现都是基于社区已有的非常优秀的模块来实现。继续阅读下文你会得到更加详细的了解。