资讯专栏INFORMATION COLUMN

Cabloy全栈JS框架微创新之一:不一样的“移动优先 PC适配”

sewerganger / 638人阅读

摘要:前言目前流行的前端组件库都支持移动设备优先的响应式布局特性。充分利用了的优良特性,充分发挥其最大价值。不重复造轮子,而是采用业界最新的开源技术,进行全栈开发的最佳组合。

前言

目前流行的前端UI组件库都支持移动设备优先的响应式布局特性。但基于Mobile和PC两个场景的不同用户体验,也往往会实现Mobile和PC两个版本。
PC场景下的Web工程,如大量的后台前端管理模版,虽然支持Mobile自适应,但其用户体验差强人意。
Cabloy采用不同的思路,仍然基于移动优先,同时通过特殊的布局优化,使得移动页面可以完整的用于PC场景,既保证了用户体验,又提升了开发效率,大大简化了开发工作量。

演示

PC:https://admin.cabloy.com

Mobile:

上图 Mobile布局

PC布局

进一步分析

Cabloy的PC布局将页面切分为若干个Mobile+Pad的组合,带来了与众不同的用户体验。
从此开发类似于微信公众号H5混合开发的项目,再也不用建立两套独立的工程。

内部机制

Cabloy前端基于Framework7,并一直跟进其最近的开发进度,从1.0到2.0,再到3.0。Cabloy充分利用了Framework7的优良特性,充分发挥其最大价值。
Cabloy的作者zhennannFramework7的贡献图如下:

Framework7将页面分为若干个View,每个View对应一个Router,管理若干个Page,从而非常方便的实现Page之间的堆叠。
Cabloy的PC布局,将页面分为若干个Tab,每个Tab再包含若干个View。通过对Router的patch,实现Tab之间与View之间的URL跳转。

代码实现 根结点组件

Cabloy通过不同的模块封装不同布局的实现逻辑,然后在根结点组件中针对页面的尺寸的变化渲染不同的布局。
需要特别说明的是,Cabloy中的模块是一个相对独立的实体,可以根据需要异步加载,提升页面加载性能。

egg-born-front/src/base/mixin/config.js:
config.js配置布局信息,可通过修改配置实现自己的布局管理逻辑

// config
const config = {
  modules: {},
  layout: {
    breakpoint: 800,
    items: {
      mobile: {
        module: "a-layoutmobile",
        component: "layout",
      },
      pc: {
        module: "a-layoutpc",
        component: "layout",
      },
    },
  },
};

egg-born-front/src/inject/pages/app.vue:
app.vue是根结点组件,动态异步加载所需的布局组件

Mobile布局组件

Mobile布局组件源码参见:https://github.com/zhennann/egg-born-module-a-layoutmobile/blob/master/front/src/components/layout.vue

a-layoutmobile/front/src/config/config.js:
config.js可以灵活配置布局的显示元素

export default {
  layout: {
    login: "/a/login/login",
    loginOnStart: true,
    toolbar: {
      tabbar: true, labels: true, bottomMd: true,
    },
    tabs: [
      { name: "Home", tabLinkActive: true, iconMaterial: "home", url: "/a/base/menu/list" },
      { name: "Atom", tabLinkActive: false, iconMaterial: "group_work", url: "/a/base/atom/list" },
      { name: "Mine", tabLinkActive: false, iconMaterial: "person", url: "/a/user/user/mine" },
    ],
  },
};
PC布局组件

Mobile布局组件源码参见:https://github.com/zhennann/egg-born-module-a-layoutpc/blob/master/front/src/components/layout.vue

a-layoutpc/front/src/config/config.js:
config.js可以灵活配置布局的显示元素

export default {
  layout: {
    login: "/a/login/login",
    loginOnStart: true,
    header: {
      buttons: [
        { name: "Home", iconMaterial: "dashboard", url: "/a/base/menu/list", target: "_dashboard" },
        { name: "Atom", iconMaterial: "group_work", url: "/a/base/atom/list" },
      ],
      mine:
        { name: "Mine", iconMaterial: "person", url: "/a/user/user/mine" },
    },
    size: {
      small: 320,
      top: 60,
      spacing: 10,
    },
  },
};
结语

Cabloy是采用Javascript进行全栈开发的最佳实践。
Cabloy不重复造轮子,而是采用业界最新的开源技术,进行全栈开发的最佳组合。
欢迎大家拍砖、踩踏。
地址:https://github.com/zhennann/cabloy

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/96794.html

相关文章

  • Cabloy.js:基于EggBorn.js开发一款顶级Javascript全栈业务开发框架

    摘要:文档官网文档演示是什么是一款顶级全栈开发框架。不重复造轮子,而是采用业界最新的开源技术,进行全栈开发的最佳组合。渐进式开发由于模块的高度内聚,可以将业务以模块的形式沉淀,在多个项目中重复使用,既可贡献到开源社区,也可部署到公司内部私有仓库。 文档 官网 && 文档 演示 PC:https://admin.cabloy.com Mobile: showImg(https://seg...

    tomlingtm 评论0 收藏0
  • Cabloy-CMS:动静结合,解决Hexo痛点问题

    摘要:文章也不例外,只有提交进入正常状态,才会进行渲染。提交并预览首页文章页部署实例与子域名支持多实例,实例与网站子域名一一对应,不同实例的数据完全隔离。 介绍 Cabloy-CMS是什么 Cabloy-CMS是基于CabloyJS全栈业务开发框架开发的动静结合的CMS,可以快速构建企业网站、博客、社区、商城等Web应用。 在线演示 https://zhennann.com 特性 Cablo...

    alin 评论0 收藏0
  • 如何成为全栈增长工程师?

    摘要:然而这也意味着成为一个全栈工程师,比以往的任何一个时间要容易得多。所以,我们开始谈论如何成为一名全栈增长工程师。再成为增长工程师整一个系列社区电子书全栈增长工程师指南电子书全栈增长工程师实战算是我对的一个研究。 (文末有惊喜) 记得我们在《RePractise前端篇: 前端演进史》中提到技术在最近十几年的飞速发展,当然最主要的就是:技术的复杂度不断地从应用层抽象到了框架层。虽说: 技术...

    SillyMonkey 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<