通过示例讲解Remix 设计哲学理念

Remix 中的丰富经验

Remix 版本: v1.14.1

Remix philosophy 阅读过程中感受最深的一个词 经验丰富,使用一个 map 数据结构来表示:

let remixPhilosophy = Map({
 1: '开发经验丰富',
 2: '培训经验丰富',
 3:'开源经验丰富'
})

遵循 web 客观发展

客观发展点用一个 map 数据结构表示:

let rich_experience = Map({
 1: '遵循 S/C 模型',
 2: '遵循 Web 标准',
 3: '遵循渐进式增强',
 4: '不过渡抽象',
})

遵循 S/C 模型

Remix 将前端统一到一个 Route Module 里面,但是依然遵循 S/C 模型:

  • loader 前端端数据描述:
let sc_remix_router = {
 fe: 'useLoaderData_hook',
 be: 'export_loader_async_fn'
}
  • action 前后端数据描述:
let sc_remix_router = {
 fe: 'useActionData_hook',
 be: 'export_action_async_fn'
}

遵循 Web 标准

遵循 web 标准发展描述:

let web = {
 'support': ['web_standard', 'http', 'html'],
 'examples': ['fetch_api', 'link_tag', 'meta_tag', 'form']
}

渐进式

在原有的 html 基础上,做 css/javascript/from/异步数据等功能增强

let enhance = {
 can_no_css_or_javascript: true,
 can_on_layout_data: true,
 can_no_loading: true,
 data_CRUD: true
}

不做过度抽象

remix 由于有教育经验,对过度的抽象是敏感的,很明显是过度抽象不利于初学者。例如引入 css 依然使用 link 来引入,不同的是:从 link 标签,变成输出一个 link 函数。

let define_link_example = {
 html: 'link_tag',
 remix: 'export_link_fn'
}

小结

remix 由于多年的开发和培训以及开源经验,开发一套遵循 Web 标准和 S/C 模型的渐进式的全栈框架。Remix 的路由模块结构简单清晰,能方便快捷的完成 web 开发任务。

作者:乔治_x

%s 个评论

要回复文章请先登录注册