react+ts+redux+nest.js完成个人博客项目

Posted lin-fighting

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了react+ts+redux+nest.js完成个人博客项目相关的知识,希望对你有一定的参考价值。

在b站搜索到一些别人写的博客项目,实属好看,突发奇想自己搞一个。就是有点丑😂
先上图:

登录页面:


首页




全部文章】

这里跳转到首页去编辑页面。

专栏



每篇文章都有所属的专栏。

相册页面


这里可以改变桌面背景。


尚未开发的功能:
留言板功能。
源码地址:
前端:https://gitee.com/fine509/blob
后端:https://gitee.com/fine509/blob-serve

后端:nest.js

因为主要是前端练习项目,后端的实现可能比较草率。

前端:react+ts+redux-toolkit

  • 对form表单的封装
    实现传入一个配置文件得到一个form表单
const useDesc: (options: { label: string; value: string }[]) => HFormProps = (
  options: { label: string; value: string }[]
) => {
  return {
    FormProps: {
      name: "login",
      layout: "horizontal",
    },
    FormItems: [
      {
        FormType: "input",
        label: "专栏名",
        name: "name",
        ContentProps: {
          style: {
            width: 300,
          },
        },
      },
      {
        FormType: "radio",
        label: "是否一级分栏",
        name: "isFirst",
        ContentProps: {
          style: {
            width: 300,
          },
          options: [
            { label: "是", value: true },
            { label: "否", value: false },
          ],
        },
      },
      {
        FormType: "select",
        label: "请选择父分类",
        name: "parent",
        ContentProps: {
          style: {
            width: 300,
          },
          options: options || [],
        },
      },
      {
        FormType: "upload",
        label: "上传封面图",
        name: "cover",
        rules: [{ required: true, message: "封面图必须!" }],
        ContentProps: {
          action: "http://localhost:3000/upload",
        },
      },
    ],
  };
};



有些组件需要自己封装,如上传,主要实现value和onchange两个api。

  • 此外,该项目还有适配,css转rem(postcss-loader)


  • redux-toolkit

  • 功能hooks抽离

    封装useSelector,加强ts提示功能。
    封装axios

后续继续优化该项目的一些功能。

以上是关于react+ts+redux+nest.js完成个人博客项目的主要内容,如果未能解决你的问题,请参考以下文章

react18结合路由reuter@6——TS和redux的配合

nest.js 中的环境变量在 jwt.strategy.ts 中不可见

typescript React-Redux与Typescript:actions.ts

菜鸟webpack/react/redux/react-router/ts一步步搭建架子

Redux Toolkit + React + TS + Tailwind CSS 复刻 YouTube 学习心得

Redux Toolkit + React + TS + Tailwind CSS 复刻 YouTube 学习心得