前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >从零打造一款基于Nextjs+antd5.0的中后台管理系统

从零打造一款基于Nextjs+antd5.0的中后台管理系统

作者头像
徐小夕
发布2024-04-14 08:33:22
1570
发布2024-04-14 08:33:22
举报
文章被收录于专栏:趣谈前端趣谈前端

hi, 大家好,我是徐小夕,最近在研究nextjs, 为了更全面复盘总结nextjs, 我写了一个开箱即用的基于 next 的后台管理系统, 供大家学习参考.

github地址:https://github.com/MrXujiang/next-admin

演示地址:http://next-admin.com

接下来我就和大家介绍一下 Next-Admin 这款中后台管理系统。

为什么要用Nextjs

首先从官网上我们可以了解到 Next.js 提供了先进的服务端渲染(SSR)和静态生成(SSG)能力,使得我们能够在服务器上生成动态内容并将其直接发送给客户端,从而大大减少首次加载的等待时间。这样可以提高网站的性能搜索引擎优化(SEO)以及用户体验

在深度使用 next.js 开发应用之后,我总结了以下使用它的优点:

  • 支持高效的服务端渲染和静态页面生成能力
  • 规则化的路由系统(保证页面更有组织层次,能更好的管理多页面)
  • 规范且颗粒度的API开发模式(更好的规范接口和业务调用)
  • 支持复杂系统的搭建(优雅的SPA单页模式和MPA多页面模式)
  • 部署和开发成本很低(前后端同构更优雅)

所以基于以上体验和思考,我决定在后面的产品和系统上都采用 Next 来开发。

Next-Admin 特点

去年值得高兴的事情是 antd5.0 发布了,从组件UI和设计架构上都有了很大的改进,尤其是 Design Token . 有了它我们可以轻松的实时切换网站主题风格, 并且在应用里复用 antd 的设计语言。

所以为了更好的方便国内开发者使用 nextjs 开发中后台系统,我打算使用 antd5.0 作为UI库来开发, 大家也可以在 Next-Admin 的基础上改造成自己的中后台系统。

接下来就来介绍一下 Next-Admin 的特点。

1. 内置基础的登录注册页面

2. 内置可拖拽的数据报表

在内置常用数据看板的同时我还支持了看板拖拽功能, 让用户更高效的消费数据。

3. 内置监控大屏页面

4. 内置常用的搜索列表

5. 支持内嵌第三方系统

上图演示的是内嵌表单搭建引擎 https://turntip.cn/formManager 的案例。

6. 内置空白Landing页面

7. 支持国际化 & 一键换肤

暗模式:

明模式:

国际化用到了 next-intl 第三方模块,核心实现如下:

代码语言:javascript
复制
import {headers} from 'next/headers';
import {notFound} from 'next/navigation';
import {getRequestConfig} from 'next-intl/server';
import {locales} from './navigation';

export default getRequestConfig(async ({locale}) => {
  // Validate that the incoming `locale` parameter is valid
  if (!locales.includes(locale as any)) notFound();

  const now = headers().get('x-now');
  const timeZone = headers().get('x-time-zone') ?? 'Europe/Vienna';
  const messages = (await import(`../messages/${locale}.json`)).default;

  return {
    now: now ? new Date(now) : ?developer/article/2408704/undefined,
    timeZone,
    messages,
    defaultTranslationValues: {
      globalString: 'Global string',
      highlight: (chunks) => <strong>{chunks}</strong>
    },
    formats: {
      dateTime: {
        medium: {
          dateStyle: 'medium',
          timeStyle: 'short',
          hour12: false
        }
      }
    },
    onError(error) {
      if (
        error.message ===
        (process.env.NODE_ENV === 'production'
          ? 'MISSING_MESSAGE'
          : 'MISSING_MESSAGE: Could not resolve `missing` in `Index`.')
      ) {
        // Do nothing, this error is triggered on purpose
      } else {
        console.error(JSON.stringify(error.message));
      }
    },
    getMessageFallback({key, namespace}) {
      return (
        '`getMessageFallback` called for ' +
        [namespace, key].filter((part) => part != null).join('.')
      );
    }
  };
});

同时项目还集成了很多优秀的开发工具,方便大家更高效的开发业务系统。

如果你对 next 开发或者需要开发一套管理系统, 我相信 Next-Admin 会给你开发和学习的灵感。

同时也欢迎和我一起贡献, 让它变得更优秀~

github地址:https://github.com/MrXujiang/next-admin

演示地址:http://next-admin.com

最后

后期我会在视频号分享更多 next 的实战项目和可视化零代码最佳实战,也欢迎关注我的视频号获取更多有意思的前端知识:

本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-03-28,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 趣谈前端 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 为什么要用Nextjs
  • Next-Admin 特点
    • 1. 内置基础的登录注册页面
      • 2. 内置可拖拽的数据报表
        • 3. 内置监控大屏页面
          • 4. 内置常用的搜索列表
            • 5. 支持内嵌第三方系统
              • 6. 内置空白Landing页面
                • 7. 支持国际化 & 一键换肤
                • 最后
                相关产品与服务
                腾讯云 BI
                腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
                http://www.vxiaotou.com