React第六篇: 搭建React + Router + antd + nodejs + express框架搭建(nodejs做前后端server)

前提: nodejs >= 10.0; 

这里不推荐用官网的yarn安装antd的模块,因为后续会出错,错误如图:

也不推荐用npx方法来搭建react骨架,也会出错,让我们开始吧!!



 

前端React+Antd框架搭建

1.安装并启动create-react-app骨架应用

打开cmd按顺序执行以下指令:

npm install -g create-react-app   (全局安装create-react-app, 默认会安装在C盘个人用户下)

create-react-app my-app (此步安装my-app以及需要的模块到当前文件夹下)

cd my-app (进入到my-app目录)

npm start (启动react项目Demo,可输入localhost:3000进入看demo)

结果如图所示:

2.引入antd

①npm install antd --save-dev

②修改 src/App.js,引入 antd 的按钮组件,代码如下:

import React, { Component } from ‘react‘;
import Button from ‘antd/lib/button‘;
import ‘./App.css‘;

class App extends Component {
  render() {
    return (
      <div className="App">
        <Button type="primary">Button</Button>
      </div>
    );
  }
}

export default App;

③修改 src/App.css,在文件顶部引入 antd/dist/antd.css

@import ‘~antd/dist/antd.css‘;

.App {
  text-align: center;
}

④执行npm run start,结果如图

3.高级配置

我们现在已经把组件成功运行起来了,但是在实际开发过程中还有很多问题,例如上面的例子实际上加载了全部的 antd 组件的样式(对前端性能是个隐患)。

此时我们需要对 create-react-app 的默认配置进行自定义,这里我们使用 react-app-rewired (一个对 create-react-app 进行自定义配置的社区解决方案)。

引入 react-app-rewired 并修改 package.json 里的启动配置。由于新的 [email protected] 版本的关系,我们还需要安装 customize-cra

①npm install react-app-rewired customize-cra --save-dev

②更改package.json

/* package.json */
"scripts": {
-   "start": "react-scripts start",
+   "start": "react-app-rewired start",
-   "build": "react-scripts build",
+   "build": "react-app-rewired build",
-   "test": "react-scripts test",
+   "test": "react-app-rewired test",
}

③然后在项目根目录创建一个 config-overrides.js 用于修改默认配置。

module.exports = function override(config, env) {
  // do stuff with the webpack config...
  return config;
};

④引入babel插件,执行指令:npm install babel-plugin-import --save-dev

⑤更改config-overrides.js文件

const { override, fixBabelImports } = require(‘customize-cra‘);

module.exports = override(
  fixBabelImports(‘import‘, {
    libraryName: ‘antd‘,
    libraryDirectory: ‘es‘,
    style: ‘css‘,
  }),
);

⑥移除前面在 src/App.css 里全量添加的 @import ‘~antd/dist/antd.css‘,并且修改App.js

import React, { Component } from ‘react‘;
import { Button } from ‘antd‘;
import ‘./App.css‘;

class App extends Component {
  render() {
    return (
      <div className="App">
        <Button type="primary">Button</Button>
      </div>
    );
  }
}

export default App;

 

⑦执行命令npm run start,发觉服务已正常启动,至此我们的react+antd框架已搭建完毕



后台nodejs+express框架搭建与服务合一

1.express骨架搭建

①我们在react根目录下建立server文件夹,如图

②我们cd进server文件夹,执行express骨架生成器指令:npm install express-generator -g

③执行语句:express --view=pug .

④执行语句:npm install,执行完了后,我们执行npm run start(这里先关掉react的服务),执行结果如图:

2.服务合一

①到这一步,让我们想想,前后端同样是以nodejs+server为基础的,难道我们需要起两个服务不成?当然不对啊。

 我们重新进到react的根目录,执行指令:npm run build

②我们将根目录build目录下的文件全部拷贝至server/public目录,然后我们刷新一下网页。诶,出来了。

③在最终部署服务环节时,我们即需要用服务合一的方法来部署运行服务(非开发阶段使用,开发阶段使用在下一章会讲解)。



后续:诶,标题不是有router么?怎么没有router相关的么?到这里,其实我们已经把相关框架大致都搭好啦。

下一章我们讲具体该如何运用这个框架进行开发,就不放在这章讲了,不然太长啦!!

原文地址:https://www.cnblogs.com/tianshu/p/11108576.html

时间: 2024-10-18 16:57:37

React第六篇: 搭建React + Router + antd + nodejs + express框架搭建(nodejs做前后端server)的相关文章

node.js基于express框架搭建一个简单的注册登录Web功能

这个小应用使用到了node.js  bootstrap  express  以及数据库的操作 :使用mongoose对象模型来操作 mongodb 如果没了解过的可以先去基本了解一下相关概念~ 首先注明一下版本,因为express因为版本的不同使用的方式也不同,我这算是目前最新的了吧 还没有装express的可以移步到这里 看看express框架的获取安装 1.简单地项目初始化 进入你的nodejs安装路径下边,如图,然后执行命令  express -e test  (这里把项目名设置为test

从无到有,用Nodejs+express+mongodb搭建简易登陆系统

前端处理server表示很蛋疼,初学Node,虽然感觉异常强大,但是学起来还是有些吃力的,Node是工具,它不是万能的,搭建一个系统还是需要借助其他一些工具,对于我这个没怎么接触server的前端来说,挑战是有的.昨天参考一些资料尝试用Node+express+mongodb搭建一个简易的登陆系统,在此记之. express是一个灵活的nodejs web应用框架, 提供一系列强大特性帮助你创建各种Web应用. Mongodb是数据库. 1.安装express,express安装比较简单,直接用

Nodejs之使用express框架搭建WEB应用

首先创建一个index.js,在里面引入相关的中间件,如果没有这些中间件,则需要在nodejs里进入index.js所在的文件夹安装这些模块,安装命令:npm install express express-static cookie cookie-session body-parser multer mysql,并且创建好www文件夹和views文件夹,www文件夹放了所有要读取的css.js.img等,views文件夹下放了所有要渲染的ejs模板 const express = requir

nodejs+express服务搭建最全详解

var express = require("express"); var bodyParser = require("body-parser"); var sm2 = require('sm.js').sm2; var app = express(); var path = require('path'); var exphbs = require('express-handlebars'); var hbsHelper = require('./util/hbs

关于大型网站技术演进的思考(十六)--网站静态化处理—前后端分离—下(8)

我第一次听说nodejs技术大概是在2009年年末,不过我真正认真在网络上进一步了解nodejs还是在2010年年中,当时对nodejs的认识和我现在对nodejs的认识有着天壤的区别,开始想了解nodejs我只是为了感慨谷歌公司开发的V8引擎居然如此强大,它不仅仅可以作为chrome浏览器的javascript内核运行平台,居然还能为服务端使用javascript语言作为平台,通过对nodejs的了解让我认识到chrome浏览器是如此的优秀,但是如此相对的是我并不认为javascript作为服

【转】关于大型网站技术演进的思考(十六)--网站静态化处理—前后端分离—下(8)

我第一次听说nodejs技术大概是在2009年年末,不过我真正认真在网络上进一步了解nodejs还是在2010年年中,当时对nodejs的认识和我现在对nodejs的认识有着天壤的区别,开始想了解nodejs我只是为了感慨谷歌公司开发的V8引擎居然如此强大,它不仅仅可以作为chrome浏览器的javascript内核运行平台,居然还能为服务端使用javascript语言作为平台,通过对nodejs的了解让我认识到chrome浏览器是如此的优秀,但是如此相对的是我并不认为javascript作为服

webapi框架搭建系列博客

webapi框架搭建系列博客 webapi框架搭建-创建项目(一) webapi框架搭建-创建项目(二)-以iis为部署环境的配置 webapi框架搭建-创建项目(三)-webapi owin webapi框架搭建-依赖注入之autofac webapi框架搭建-日志管理log4net webapi框架搭建-webapi异常处理 原文地址:https://www.cnblogs.com/shengyu-kmust/p/8279300.html

Nodejs+Express 搭建 web应用

简单的记录下关于如何使用nodejs+Express 极速搭建一个web应用. 项目所需,要用到nodejs,那就去学咯.简单的看了下 七天学会NodeJS,Node.js 教程.发现其实好简单的,分分钟上手,这里只是简单记录,nodejs 对数据库的操作不做详细介绍.  看七天不存在的,呵呵.大概的过了一遍,然后开始干活. 首先显得有nodejs环境吧,nodejs下载地址,安装完毕后,检查版本号,看是否成功安装. huangenaideMacBook-Pro:x-wallet huangen

Node.js入门教程 第五篇 (Express框架)

Express框架 Express是适用于Node.js web的框架,提供了大量实用功能,例如路由功能及http功能. Express 框架核心特性: 可以设置中间件来响应 HTTP 请求. 定义了路由表用于执行不同的 HTTP 请求动作. 可以通过向模板传递参数来动态渲染 HTML 页面. 安装: npm install express --save 可能需要的中间件: body-parser - Node.js 中间件,用于处理 JSON, Raw, Text 和 URL 编码的数据. c