react-问卷星项目(1)

news2024/9/22 23:22:31

学习的一位MOOC老师的经验,记录一下学习的过程

本项目技术栈:React18+TS4+AntDesign5+Next.js13

项目:低代码,B/C

react官方文档

核心价值:

组件化:不是React原创,但在React中流行开来

数据驱动视图:定义好数据和UI的显示规则,即UI=f(state).只关注业务数据的修改,不用再操作DOM,增加开发效率。直接操作DOM风险大,容易影响性能等,vue也是同理。

开始

React常见脚手架

vite和webpack的区别

Create-React-App内部使用webpack打包

Vite既是构建工具,又是打包工具

  • Vite比CRA打包项目更快,快是因为使用了ES Module(仅开发环境)

ESModule

分别创建index.html文件和main.js文件,在index中导入main.js

确定是否下载了http-server,没有的话执行下面的命令下载,如果你还没有安装npm,可以先安装Node.js,它会自带npm。访问 node.js官网 下载并安装。使用Sudo是因为我没把npm配置到全局,在mac中进行操作需要权限)

sudo npm install -g http-server

下载完后,进入项目的根目录,用下面这段指令在指定端口(8881)启动

http-server -p 8881

可以看到控制台有输出。这是webpack传统的打包方式,会把所有内容打包成mean.js后一次性塞给html文件,vite可以把零散文件通过ES Modul引用,即export/import,webpack会将几个文件压缩到一起并打包,vite使用script的时候添加type="module"即可按需饮用,wenpack需要全部结合,计算需要时间,所以vite快

安装软件

  • node.js 使用国内的npm镜像,不使用国内的可能会慢(国内镜像)
  • VSC(Visual Studio Code)
  • 安装git

创建项目

Create-React-App

创建命令,这条是官方提供的,但我使用的时候莫名卡半天,也不报错,也没有进度。

npx create-react-app myApp

解决方法如下(非mac电脑可忽略sudo)

用npm下载和创建名为my-app的项目,首先项目名称中不能包涵大写字母,不然会报错,后缀--template typescript的意思是按照ts的模版进行创建,不然会默认为js语言

// 下载相关包
sudo npm install -g create-react-app

// 配置项目
create-react-app my-app --template typescript

在App.tsx文件中更改内容再重新保存可以更换启动项目时展示页面的内容。

Vite

官网创建指令

npm create vite@latest my-app -- --template react-ts

在App.tsx文件中更改内容再重新保存可以更换启动项目时展示页面的内容。

总结

选择Create-React-App

  • 是React官网推荐的
  • 时间更久,可查找资源更多
  • 要考虑稳定性,求稳不求新

配置编码规则

Prettier统一代码功能

在项目根目录执行下面的指令 --> package.json文件中查看是否成功添加devDependencies模块

npm i prettier eslint-config-prettier eslint-plugin-prettier --save-dev

添加成功后在vsc中搜索prettier插件,没有下载点击下载就行。

在package.json文件中,在scripts模块中添加如下语句,保存后使用第二句指令启动项目,会看到更改了相应操作的文件目录,即将单引号更换为双引号,可自行查看是否生效。

"format": "prettier --write 'src/**/*.+(js|ts|jsx|tsx)' "

npm run format

接下来在项目根目录下创建.vscode文件夹(注意这个vscode前面有个小圆点),并在文件夹下面新建文件settings.json,配置如下,意思是在保存的时候自动更改格式,而不需要像前面一样另外使用指令运行。

{
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": "explicit"
  }
}

我在这一步碰到了一个问题,就是保存文件的时候修改并没有生效,搜索了一下,很大概率还是缺少了eslint文件,因为前面缺失了一节课,所以我就按照自己的步骤往下添加。

先在根目录下载eslint,指令为下列代码中的第一句,然后在根目录创建一个文件.eslintrc.js,其中的配置如下,module会有报红波浪线,不用理会,记得文件前面要加.不然没效果,保存好了之后可以随便拿一个文件进行修改,会看到单引号路径会报错,保存后会自动修改为双引号,就表示配置生效了。

npm install eslint --save-dev
// .eslintrc.js
module.exports = {
  env: {
    browser: true,
    es2021: true,
  },
  extends: [
    "eslint:recommended",
    "plugin:react/recommended",
    "plugin:@typescript-eslint/recommended",
    "plugin:prettier/recommended",
  ],
  parser: "@typescript-eslint/parser",
  parserOptions: {
    ecmaVersion: "latest",
    sourceType: "module",
  },
  plugins: ["react", "@typescript-eslint"],
  rules: {
    // 你的规则配置
  },
};

提交到github仓库

参考文章:提交到github

创建一个github账号,可以通过下面这一条指令检查.ssh是否存在,我使用的时候没有查出来,但是后面创建新的内容时又显示有这个文件。

cd ~/.ssh

若提示“-bash: cd: ~/.ssh: No such file or directory” 那就说明.ssh文件夹不存在,那么则进行下一个步骤,否则就是将原来的.ssh文件夹备份以下,亦或是切换到其他路径下建立ssh。输入以下命令来创建ssh,xxx@xx.com为你注册GitHub时的邮箱账号,命令执行成功后,会有以下提示

$ ssh-keygen -t rsa -C xxx@xx.com

这个默认路径最好不要改,我就是改了,结果推送项目的时候失败了。当然如果知道怎么处理这种情况当我没说

Generating public/private rsa key pair.
Enter file in which to save the key (/Users/yuyuhang/.ssh/id_rsa):       
// .ssh默认路径,不输入则不修改
Enter passphrase (empty for no passphrase):                              
// 密码长度至少为4,否则失败
Enter same passphrase again: 
Your identification has been saved in /Users/yuyuhang/.ssh/id_rsa.
Your public key has been saved in /Users/yuyuhang/.ssh/id_rsa.pub.
The key fingerprint is:
8d:d3:5f:31:ae:13:48:f0:78:df:a1:8f:a5:a4:c0:06 352091626@qq.com
The key's randomart image is:
+--[ RSA 2048]----+
|        .        |
|         +       |
|      E . +   +  |
|       o * o + + |
|        S + = =  |
|       . o + O   |
|          . * .  |
|             .   |
|                 |
+-----------------+

接下来就是在GitHub上创建SSH。首先登陆你的GitHub,右上角用户头像下选择Settings,在SSH Keys 选项里面添加ssh,然后创建一个仓库,仓库不需要勾选创建README.md。

Title:xxx@xx.com
Key:打开生成的id_rsa.pub文件(/User/yourname/.ssh/is_rsa.pub),将其中内容拷贝过来

创建成功后,查看项目中是否有README.md文件,没有的话就执行下面的步骤

$ touch README.md                                         
//新建一个README文档,若上一步勾选了创建README.md,提交时导致冲突
$ git init                                                
//初始化本地仓库
$ git add README.md                                       
//添加刚刚创建的README文档
$ git commit -m "你的注释...."                             
//提交到本地仓库,并写一些注释
$ git remote add origin git@github.com:yourname/xxxx.git  
//连接远程仓库并建了一个名叫:origin的别名,当然可以为其他名字,但是origin一看就知道是别名,youname记得替换成你的用户名
$ git push -u origin master                              
//将本地仓库的文件提交到别名为origin的地址的master分支下,-u为第一次提交,需要创建master分支,下次就不需要了

链接期间可以用下面这条指令查看和github的链接是否正常,如果链接不正常那就先解决连接问题,如果这个链接返回的结果是正常的,但是项目推送的时候有问题,可以考虑下是不是我遇到的两个,1 生成的钥匙更换了默认路径  2 使用https提供的项目链接进行操作(应该使用SSH)

ping github.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2122397.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

怎么用python打开文件

python文件读写文件是最常见的IO操作。Python内置了读写文件的函数,用法和C是兼容的。 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘。 读写文件就是请…

使用java对栅格数据的处理,对栅格文件进行导入导出

需求背景: 对栅格文件进行导入导出(使用代码的方式,非命令方式); 当然也可以使用代码和GDAL的方式进行,但是GDAL配置部署不便捷,故选用GeoTools方式来实现。 ps:若是使用命令方式&am…

大模型api谁家更便宜

1 openai 可点此链接查询价格:https://openai.com/api/pricing/ 2 百度 可点此链接查询价格:https://console.bce.baidu.com/qianfan/chargemanage/list 需要注意,百度千帆平台上还提供其他家的模型调用服务, 如llama, yi-34b等…

IDE快速复制文件名

在很多情况下我们需要复制IDE中文件的名称,习惯性的F2却不能重命名 如图操作又比较繁琐 解决方法⭐⭐⭐ 其实直接CtrlC可以复制文件名🤡🤡🤡

7-Zip压缩包如何添加密码,加密后如何取消

压缩包文件大家经常使用,最熟悉的肯定是RAR、ZIP格式压缩文件,但是7z压缩文件格式也很好用,它是三种压缩文件格式中压缩率最大的。想要将文件压缩到最小,使用7z格式可以达到最大化。那么在使用7z压缩格式的时候,我们可…

银河麒麟V10系统软件商店手动更新方法

银河麒麟桌面操作系统V10重新安装之后,有些软件商店未能及时的自动更新,从而软件商店里无法获取最新的软件应用,这个时候就需要我们手动的进行升级更新一下软件商店了,更新之后软件商店里的内容就会增加不少,那么&…

阿尔泰科技案例解析-炼钢厂设备监测解决方案!

案例背景 在一家大型钢铁冶炼厂中,熔炉是生产过程的核心设备,广泛应用于金属冶炼、铸造和加工步骤,如钢铁的冶炼和精炼。为了确保熔炉在最佳状态下运行,并防止潜在的故障或事故,该厂需要对熔炉及厂房内相关设备的多个…

开发模型例题

答案:A 解析:瀑布模型是跟对需求明确的项目 增量模型是将需求分为多个阶段,适合一开始需求不明确的 演化模型适合用户需求不清,需求经常变化的情况 螺旋模型适合庞大,复杂且具有高风险的系统

F12抓包07:Network界面功能详细介绍

课程大纲 ​ 本课介绍F12“网络”(Network)tab菜单界面的功能区域和使用。 8.1 录制与清空 8.2 过滤与搜索 1、url过滤 2、全局搜索 8.3 保留日志 勾选“保留日志”:刷新界面后请求记录不清空;否则,清空历史请求记录…

西门子博途PLC跑马灯的简单编程方式

新手必学的PLC程序,老电工转型电气工程师必看!#自动化##PLC##电工##电气##学习##编程##跑马灯##西门子##外企# 工控人加入PLC工业自动化精英社群 工控人加入PLC工业自动化精英社群

AutoIT:强大的RPA自动化脚本神器,安装到使用的保姆级教程!

作为一个经常需要在Windows上处理各种繁琐任务的“码农”,我对各种自动化工具有着深厚的兴趣。尤其是AutoIT这种工具,让人简直爱不释手。 我有时候需要写一大堆技术文档,里面各种表格、数据,手动操作简直让人头大。那时候&#x…

5款AI头像生成神器,独特头像不是梦!

在各种应用程序和社交媒体平台上,头像几乎无处不在。它不仅仅是个人的标识,更是展现个性和特征的一种方式。随着人工智能技术的不断进步,各种头像生成器应运而生,让我们能够创造出更加独特和个性化的头像。使用这些AI头像生成器非…

How can I register a custom environment in OpenAI‘s gym?

题意:如何在OpenAI的Gym中注册一个自定义环境? 问题背景: I have created a custom environment, as per the OpenAI Gym framework; containing step, reset, action, and reward functions. I aim to run OpenAI baselines on this custom…

tabBar设置底部导航栏

如果应用是一个多 tab 应用,可以通过 tabBar 配置项指定一级导航栏,以及 tab 切换时显示的对应页,简单来说就是像美团外卖下面的导航栏一样可以任意切换 1.首先创建三个页面,在页面里面可以写一些东西或者放一张图片方便区分。 2.…

JavaScript高级进阶(二)

JS弹窗 弹窗与语法 警告窗 window.alert()//用于确保用户可以得到某些信息 确认窗 window.confirm()//用于验证是否接受用户操作 提示窗 window.prompt()//用于提示用户在进入页面前输入某个值 <script> //警告窗 alert(欢迎光临); //提示框 var str prompt(是不是…

秒懂:进程切换——O(1)调度算法

情景理解&#xff1a; 上面这张图展示的就是Linux内核中的调度队列示意图&#xff0c;那么具体是如何进行队列调度的呢&#xff1f; 首先&#xff0c;图中有两个queue[140]&#xff0c;这个就是所谓的队列结构&#xff0c;&#xff08;蓝色和红色扩出来的&#xff09;其中有一…

(Arxiv-2022)eDiff-I:具有一组专家降噪器的文本到图像扩散模型

eDiff-I&#xff1a;具有一组专家降噪器的文本到图像扩散模型 Paper Title&#xff1a;eDiff-I: Text-to-Image Diffusion Models with an Ensemble of Expert Denoisers Paper是NVIDIA 公司发表在arxiv 2022的工作 Paper地址 项目页面地址 图 1. 我们提出的方法 eDiff-I 的示例…

电子连接器接触电阻仿真教程

电子连接器接触电阻是指连接器连接通路中公母端子接点处电阻与公母端子导体的电阻总和。接触电阻是电子连接器的重要电气特性参数,对同款连接器,接触电阻则是衡量其品质优劣的重要指标。接触电阻过大时会导致传输信号在连接器上的能量损耗过大,电压降过大,发热过大等不利于…

【计网】计算机网络基础

当自律变成一种本能的习惯&#xff0c; 你就会享受到它的快乐。 --- 村上春树 --- 初识计算机网络 1 初识协议1.1 协议分层1.2 OSI七层模型1.3 TCP / IP协议 2 初识局域网2.1 什么是局域网2.2 MAC地址2.3 局域网通信 3 简单认识IP地址 1 初识协议 1.1 协议分层 首先&#…

Xilinx SDK入门示例

本文以测试PS端的UART和DDR3&#xff0c;介绍Xilinx SDK的简单用法。 1 创建VIVADO工程 Step1&#xff1a;新建工程 Step2&#xff1a; Step3&#xff1a;选择器件 Step4&#xff1a;在接下来的页面中&#xff0c;点击Finish完成工程的创建 Step5&#xff1a;点击IP INTERGA…