当前位置: 首页 > news >正文

React使用笔记(持续更新中)

文件结构:

根目录(项目名)

        |-config

                |-config.jsx

        |-src

                |-taskpane

                        |-components

                                |-Login.jsx

                        |-taskpane.html

                        |-taskpane.jsx

                        |-index.jsx

        |-until

                |-common.jsx

until/common.jsx代码:

// utils/request.js
import { API_BASE_URL } from "@config/config";
// 封装 fetch
export async function request(url,options = {},token="") {const finalUrl = API_BASE_URL + url;let defaultOptions=false;if(token){defaultOptions = {headers: {"Content-Type": "application/json",'Authorization': `Bearer ${token}`,},mode: 'cors',  // 确保是 CORS 模式...options,};}else{defaultOptions = {headers: {"Content-Type": "application/json",},mode: 'cors',  // 确保是 CORS 模式...options,};}try {const res = await fetch(finalUrl, defaultOptions);if (!res.ok) {throw new Error(`请求失败: ${res.status} ${res.statusText}`);}// 自动解析 JSONconst data = await res.json();return data;} catch (err) {console.error("请求错误:", err);throw err;}
}// 便捷方法:GET
export function get(url,params=false,token="") {let queryString = "";if (params) {const searchParams = new URLSearchParams();params.forEach((item, index) => {searchParams.append(index, item);});queryString = `?${searchParams.toString()}`;}return request(url + queryString, { method: "GET" },token);
}// 便捷方法:POST
export async function post(url, params,token="") {return request(url, {method: "POST",body: JSON.stringify(params),},token);
}

config/config.jsx代码:

export const API_BASE_URL = "http://localhost";
export const API_URL = {Edit_Url:"/index/meal/dataupdate",Login_Url:"/index/meal/mlwlogin",
}

 一、如果要在对应文件中引用非同级的文件

例如:index.jsx中需要应用Login.jsx、until/common.jsx和config/config.jsx。引用Login.jsx文件可以直接./components/Logins.jsx。但是使用until/common.jsx和config/config.jsx就有两种方式。

import * as React from "react";
import Login from "./components/Login";
import { API_URL } from "@config/config";
import {post} from "@utils/common";const rootElementLogin = document.getElementById("container");
const rootLogin = rootElementLogin ? createRoot(rootElementLogin) : undefined;async function greetUser() {let params={userid:123};const result = await post(API_URL.Edit_Url, params);return <div><div>123</div><Login></Login></div>;
}

第一种:无需作配置,直接使用

import {API_URL} from "../../config/config.jsx";
import {post} from "../../until/commont.jsx";

第二种:需要做配置,可以直接使用定义的内容应用

import { API_URL } from "@config/config";
import {post} from "@utils/common";

配置内容:

//在tsconfig.json中加入配置
{"compilerOptions": {//配置根目录"baseUrl": ".","paths": {"@config/*": ["config/*"],"@utils/*": ["utils/*"]}
},//配置根目录"include": ["config", "utils"]
}
//项目类型,配置构建工具。一般就两种vite.config.ts或者webpack.config.js
//webpack.config.js:
const path = require("path");
module.exports = async (env, options) => {resolve: {alias: {"@config": path.resolve(__dirname, "config"),"@utils": path.resolve(__dirname, "utils")},},
});//vite.config.ts:
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import path from 'path'// https://vitejs.dev/config/
export default defineConfig({plugins: [react()],resolve: {alias: {'@config': path.resolve(__dirname, './config'),'@utils': path.resolve(__dirname, './utils')}}
})

http://www.dtcms.com/a/577079.html

相关文章:

  • ArkTS运行时
  • C语言递归宏详解
  • 指令微调(Instruction Tuning)
  • Linux 中 NIC(网络接口卡)和协议栈的区别以及DPDK
  • MATLAB实现贝叶斯回归预测
  • ZYNQ介绍
  • 【Python】-- 趣味代码 - Piano游戏
  • 解决使用EasyExcel导出带公式的excel,公式不自动计算问题
  • 展示型网站多少钱建设大型网站的公司
  • 前端FAQ: 描述⼀下你最近使⽤过的前端框架,并解释为何选择它们?
  • [特殊字符] 微前端部署实战:Nginx 配置 HTTPS 与 CORS 跨域解决方案(示例版)
  • 短视频矩阵系统搭建指南:源码部署与全流程解析
  • 李沐动手学深度学习笔记(1)
  • 做网站云服务器选择多大带宽北京网站建设有哪些公司好
  • 第8章 模块系统
  • GraphRAG在Windows环境下离线部署
  • Spring Boot 实战:企业级接口限流与熔断机制设计
  • 二十一、二进制文件部署高可用集群
  • 窗口dp|组合数学
  • 【linux国庆练习】
  • 织梦cms怎么做双语网站wordpress网页小特效
  • 我的世界做壁纸的网站移动互联网开发心得体会
  • CST对电路板与地面平面耦合的电磁模拟
  • Apple授权登录开发流程
  • 告别手动导出:一键将思源笔记自动同步到 Git 仓库
  • OPPO 后端校招面试,过于简单了!
  • element表格的行列动态合并
  • C++ 零基础入门与冒泡排序深度实现
  • 鸿蒙harmony将注册的数据包装成json发送到后端的细节及过程
  • JavaWeb(后端进阶)