新手搭建 react antd 环境笔记

2023-11-13

安裝依赖
npm install -g create-react-app
npm install antd-mobile --save

npm install less-loader less --save-dev
npm install react-app-rewired --save-dev
npm install babel-plugin-import --save-dev
npm add customize-cra --dev

建立 config-overrides.js

const {override, fixBabelImports, addLessLoader} = require("customize-cra");
module.exports = override(
    fixBabelImports("import", {
        libraryName: "antd-mobile", libraryDirectory: "es", style: true // change importing css to less
    }),
    addLessLoader({
        javascriptEnabled: true,
        modifyVars: { "@primary-color": "#1DA57A" }
    })
);


package.json 修改

  "scripts": {
    "start": "react-app-rewired start",
    "build": "react-app-rewired build",
    "test": "react-app-rewired test --env=jsdom",
    "eject": "react-scripts eject"
  },

html頁面添加js

  <script src="https://as.alipayobjects.com/g/component/fastclick/1.0.6/fastclick.js"></script>
  <script>
    if ('addEventListener' in document) {
      document.addEventListener('DOMContentLoaded', function() {
        FastClick.attach(document.body);
      }, false);
    }
    if(!window.Promise) {
      document.writeln('<script src="https://as.alipayobjects.com/g/component/es6-promise/3.2.2/es6-promise.min.js"'+'>'+'<'+'/'+'script>');
    }
  </script>


生态简介:
create-react-app
react
redux
react-redux
redux-thunk
react-router-dom
axios
antd-mobilie for react

搭建axios拦截器:
import axios from "axios";

const Interceptors = {
    init(){
        // 拦截请求
        axios.interceptors.request.use(req => {
            req.url = `https://cnodejs.org/${req.url}`;
            return req;
        });

        // 拦截回应
        axios.interceptors.response.use(res => {
            // console.log(res);
            return res;
        }, err => {
            console.log(err);
            return err;
        });
    }
};

export default Interceptors;

建立services:
import axios from "axios";

const TabsService = {
    /**
     * 获取主题首页
     * get参数
     * page Number 页数
     * tab String 主题分类。目前有 ask share job good
     * limit Number 每一页的主题数量
     * mdrender String 当为 false 时,不渲染。默认为 true,渲染出现的所有 markdown 格式文本。
     * @constructor
     */
    topics(data = null) {
        return axios.get(`api/v1/topics`, {data: data});
    },
    /**
     * 主题详情
     * get参数
     * mdrender String 当为 false 时,不渲染。默认为 true,渲染出现的所有 markdown 格式文本。
     * accesstoken String 当需要知道一个主题是否被特定用户收藏以及对应评论是否被特定用户点赞时,才需要带此参数。会影响返回值中的 is_collect 以及 replies 列表中的 is_uped 值。
     * @param id
     * @param data
     * @returns {AxiosPromise<any>}
     */
    topic(id, data = null){
        return axios.get(`api/v1/topic/${id}`, {data: data});
    }
};
export default TabsService;

新手探讨目前到此为止,接下来配置好,redux,就可以开心的撸一个小东西用来熟悉react了

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

新手搭建 react antd 环境笔记 的相关文章

  • react项目中使用react-dnd实现列表的拖拽排序

    现在有一个新需求就是需要对一个列表 实现拖拽排序的功能 要实现的效果如下图 可以通过 react dnd 或者 react beautiful dnd 两种方式实现 今天先讲下使用react dnd是如何实现的 github地址 https
  • React重新渲染的触发机制及其优化策略

    React是一个用于构建用户界面的JavaScript库 它的核心特点之一是使用虚拟DOM Virtual DOM 来实现高效的组件渲染 那组件重新渲染的机制是如何呢 基于这些机制 如果进行优化呢 虚拟DOM是一个用JavaScript对象
  • React 组件通讯

    目录 1 组件通讯 概念 1 组件的特点 2 知道组件通讯意义 总结 2 组件通讯 props 基本使用 1 传递数据和接收数据的过程 2 函数组件使用 props 3 类组件使用 props 总结 3 组件通讯 props 注意事项 1
  • state和props的区别__react

    首先说明 state和props是每个组件都有的 其次 state可变 但props不可变 这是官网给出的说法 但实操过程中 state的确可变 但props也可以变 是不是fb搞错了 当然不是 这里的可变与不可变 说的是改变后 是否会重新
  • ant design pro v5 配置拦截器,header

    ant design pro v5 配置拦截器 header 1 资料文档 https umijs org zh CN plugins plugin request requestinterceptors 2 编写app tsx 我这里是自
  • 在Linux远程服务器上搭建JavaWeb开发环境

    配置 远程linux服务器版本为CentOS7 6 使用的是阿里云服务器 目录 1 安装JDK 1 1 查看yum源中JDK版本 1 2 使用yum安装JDK1 8 1 3 查看是否安装成功 2 安装MySQL 2 1 查看是否已安装mys
  • 如何在 Ubuntu 20.04 上使用 React 前端设置 Ruby on Rails v7 项目

    作者选择了电子前沿基金会接受捐赠作为为捐款而写程序 介绍 红宝石 on Rails是一个流行的服务器端 Web 应用程序框架 它为当今网络上存在的许多流行应用程序提供支持 例如GitHub Basecamp 声云 Airbnb and Tw
  • Ionic3开发教程 - 开发(2)

    Ionic3开发系列教程Ionic3开发教程 环境准备 1 Ionic3开发教程 开发 2 Ionic3开发教程 发布Android版本 3 Ionic3开发教程 发布IOS版本 4 Ionic3开发教程 更新 5 本文中介绍的Ionic3
  • 组件间样式覆盖问题--CSS Modules

    1 组件间样式覆盖问题 问题 CityList 组件的样式 会影响 Map 组件的样式 原因 在配置路由时 CityList 和 Map 组件都被导入到项目中 那么组件的样式也就被导入到项目中了 如果组件之间样式名称相同 那么一个组件中的样
  • 三分钟实现一个react-router-dom5.0的路由拦截(导航守卫)

    不同于vue 通过在路由里设置meta元字符实现路由拦截 在使用 Vue 框架提供了路由守卫功能 用来在进入某个路有前进行一些校验工作 如果校验失败 就跳转到 404 或者登陆页面 比如 Vue 中的 beforeEnter 函数 rout
  • mac编译安装Nginx

    一 安装wget 使用homebrew安装wget brew install wget 安装wget时报错 tar Error opening archive Failed to open Users xxx Library Caches
  • react和react jsx基础

    本文是个人学习笔记 例子都是来自React Native官网 之前不是做前端的 没有使用过react 要学习react native做混合开发 react 包括react jsx还是得补补 react和react jsx react是一个j
  • Umi+Dva初印象<基础应用,结构,流转逻辑>

    目录 前言 知识储备 generator函数 Dva初识 实际交互 函数式组件 class组件 前言 项目初始为umi脚手架进行初始化 lt 初始化过程 http t csdn cn cuTaY gt 工程中加载了umi自带的antd ui
  • React实现关键字高亮

    先看效果 实现很简单通过以下这个函数 highLight text keyword gt return text split keyword flatMap str gt span keyword span str slice 1 展示某段
  • 【react】回调函数形式的ref

    回调函数有3个特点 是我定义的函数 我没有调用这个函数 在我没有调用的情况下这个函数自己执行了 ref绑定一个箭头函数作为回调函数 可以输出以下这段看下 ref绑定的箭头函数是会自己执行的 class Demo extends React
  • 值得收藏的UmiJS 教程

    点击上方关注 前端技术江湖 一起学习 天天进步 前言 网上的umi教程是真的少 很多人都只写了一点点 很多水文 所以打算自己写一篇 自己搭建umi 并封装了一下常用的功能 并用到公司实际项目中 umi介绍 Umi 是什么 Umi 中文可发音
  • reactJS 干货(reactjs 史上最详细的解析干货)

    一 State和 Props state是状态机 应该包括 那些可能被组件的事件处理器改变并触发用户界面更新的数据 譬如需要对用户输入 服务器请求或者时间变化等作出响应 不应该包括 计算所得数据 React组件 在render 里使用pro
  • react之封装有无Token(路由权限控制)的高阶组件

    TOC 前景 有些路由页面内的内容信息比较敏感 如果用户没有经过登录获取到有效Token 是没有权限跳转的 根据Token的有 无控制当前路由是否可以跳转就是路由的权限控制 技术方案 实现步骤 1 在 components 目录中 创建 A
  • React Jsx转换成真实DOM过程?

    面试官 说说React Jsx转换成真实DOM过程 一 是什么 react 通过将组件编写的 JSX 映射到屏幕 以及组件中的状态发生了变化之后 React 会将这些 变化 更新到屏幕上 在前面文章了解中 JSX 通过 babel 最终转化
  • React安装依赖 node_modules中有下载依赖项但package.json文件中没有依赖

    React安装依赖 node modules中有下载依赖项但package json文件中没有依赖 直接在下载依赖项后 加 S 就可以解决 随机 id 生成器 uuid nanoid npm install nanoid S S save

随机推荐

  • Java 并发编程

    目录 回顾线程 并发编程 并发编程 Java 内存模型 JMM 编程核心问题 可见性 原子性 有序性 可见性 有序性 原子性 valatile 关键字 CAS Compare And Swap 比较并交换 原子类 java中的锁 乐观锁 悲
  • JS逆向学习---简单的rsa

    今日目标 aHR0cHM6Ly9jbi5mYXdteC5jb20vaG9tZS9yZWdpc3Rlcg 登录接口有一个加密参数 也就是密码加密值 就是今天的小目标 直接搜索 只有一个js文件有结果 第一个便是加密位置 很明显 是把明文密码传
  • 炼丹速度×7!你的Mac电脑也能在PyTorch训练中用GPU加速了

    点击上方 小白学视觉 选择加 星标 或 置顶 重磅干货 第一时间送达 来源 量子位 QbitAI 编辑 丰色 发自 凹非寺 一直以来 Pytorch在Mac上仅支持使用CPU进行训练 就在刚刚 Pytorch官方宣布 其最新版v1 12可以
  • 自然语言处理常用标识符<UNK>,<PAD>,<SOS>,<EOS>等

  • 系统架构设计高级技能 · 软件可靠性分析与设计

    系列文章目录 系统架构设计高级技能 软件架构概念 架构风格 ABSD 架构复用 DSSA 一 系统架构设计师 系统架构设计高级技能 系统质量属性与架构评估 二 系统架构设计师 系统架构设计高级技能 软件可靠性分析与设计 三 系统架构设计师
  • 这样统计代码执行耗时,才足够优雅

    一 前言 代码耗时统计在日常开发中算是一个十分常见的需求 特别是在需要找出代码性能瓶颈时 可能也是受限于 Java 的语言特性 总觉得代码写起来不够优雅 大量的耗时统计代码 干扰了业务逻辑 特别是开发功能的时候 有个感受就是刚刚开发完代码很
  • Java 关于时间、日历类

    一 相互转换 1 Calendar 转化 String 获取当前时间的具体情况 如年 月 日 week date 分 秒等 Calendar calendat Calendar getInstance SimpleDateFormat sd
  • 打印金字塔

    首先我们分解这个问题 由简到难循序渐进 先打印4层半个金字塔如图 public class demo1 打印半个金字塔 public static void main String args TODO Auto generated meth
  • 深度解析开源IDE的领头羊—【Eclipse 】--认识Eclipse

    认识Eclipse 阅读本文前 相信读者已经对Eclipse略知一二了 起码已经知道它是一个Java的集成开发环境 IDE 并且还是一个应用程序框架 可以通过开发插件 把Eclipse打造成各种应用软件 而且还打算通过学习本书的内容 在具体
  • vue2 webpack版批量注册全局组件

    使用背景 用vue开发的所有项目 都是采用组件化的思想开发的 分为公共组件和功能组件 又可以分为全局自定义组件和局部自定义组件 全局自定义组件在main js文件直接引入 这种是最简单的方式 使用缺点 如果我们需要注册的全局组件非常多 那么
  • 移动端 - 搜索组件(search-list篇)

    移动端 搜索组件 search input篇 移动端 搜索组件 suggest篇 这里我们需要去封装搜索历史组件 这一个组件还是很简单的 但是逻辑部分需要根据实际的需求来进行书写 所以这里我不太好去写实际的代码 不过可以提供我的思路 主要的
  • Spring的事务

    目录 一 Spring的事务 二 Spring事务如何实现 三 Spring事务的失效 一 Spring的事务 当我们在某个方法上添加了 Transactional注解后 就表示该方法在调用时会开启Spring事务 而这个方法所在的类所对应
  • 第九课,OpenGL光照之材质

    物体材质 在冯氏模型中 一个物体的材质由 全局光照系数 漫反射光照系数 反射光照系数 反射高光半径系数决定 分别由 ambient diffuse specular shininess表示 材质系数 The numbers Name Amb
  • 【博客管理】博客目录导航【置顶】

    一 OpenCV学习 OpenCV学习笔记 函数学习 OpenCV学习笔记 函数学习 一 MFC OpenCV2 4 7读取摄像头之cvCaptureFromCAM 的索引问题 OpenCV学习笔记 函数学习 二 MFC OpenCV2 4
  • 【华为OD机试2023】字符串解密 java python c++

    字符串解密 题目 题目描述 给定两个字符串string1和string2 string1是一个被加扰的宇符串 string1由小写英文字母 a z 和数字字符 0 9 组成 而加扰字符串由 0 9 a z 组成 string1里面可能包含0
  • 使用js控制浏览器开启全屏,判断浏览器是否处于全屏状态

    引入lodash import from lodash 切换全屏方法 export function fullScreen isOpen target let dom target void 0 let open list requestF
  • 什么是.Net?

    NET 是一个开发平台 或者叫开发者平台 使用 NET 你可以创建不同类型的应用程序 使用多种开发语言 编辑器和工具库创建网页 手机 桌面以及游戏等应用 其核心特点是 免费 开源和跨平台 1 语言和平台 我们先来理解一下什么是 NET 开发
  • URL 转为QR code(二维码)

    总结几种把网页url转为二维码的方法 1 Chrome浏览器 最快的一种方法就是用chrome自带的QR code分享 这种方法的缺点就是不能自定义二维码的格式 颜色 logo之类的 都是默认的小恐龙图标 2 chrome插件 可以在chr
  • 关于非同一局域网下两台设备之间的网络通信(服务器的作用)

    看过很多关于局域网下的两台设备之间的通信方式 最多的就是通过socket进行tcp ip通信 建立一个服务端 再建立一个客户端 客户端向服务端发起请求连接 然后再进行两端的通信 但发现其实这却存在着很多的问题与不足 如果是不在同一局域网下的
  • 新手搭建 react antd 环境笔记

    安裝依赖 npm install g create react app npm install antd mobile save npm install less loader less save dev npm install react