Remix 设计哲学

发布于:2023-03-14 ⋅ 阅读:(494) ⋅ 点赞:(0)
Remix 版本: v1.14.1

Remix 中的丰富经验

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 开发任务。

关注公踪号 进二开物,更多 JS/TS/CSS/Rust 技术文章和科技资讯...