React笔记(一)初识React

一、React概述

1、什么是react

react的官网:React

用于构建用户界面的 JavaScript 库,它也是一个渐进式的用于构建用户界面的javascript框架

2、主要特征

  • 声明式:使用原生JS编写的页面存在着开发效率低下、性能较差的情况,使用react大家就向编写HTML的一样编写页面

  • 组件化:使用组件的思想编写程序是现代企业开发的一种思路、让组件达到复用效果、大大提高开发效率,让项目具有可维护性和扩展性。

  • 一次学习,跨平台编写

    • 使用react不仅能够编写WEB应用

    • react还可以编写移动应用(react-native)

    • react完成VR(虚拟现实)(react 360)

3、React框架的发展史

React主要是在为了构架Instagram,2013年5月的时候,把React框架开源了,React整个生态,可以做到编写一套代码,可以运行到多端,除了可以开发web应用之外,也可以开发移动端应用等。

二、使用CRA构建React工程化项目

1、使用CRA创建React项目

使用create-react-app脚手架来完成react项目的创建,这里使用npx命令来进行创建

npx create-react-app 项目名称

2、目录结构

|-node-modules:第三方依赖包
|-public:资源文件
   |-index.html:页面出口文件
|-src:源文件
   |-index.js:项目入口文件
|-package.json:项目描述文件

创建完成之后,我们来看package.json中相关配置

2.1、包依赖
  • react:react框架的核心包

  • react-dom:react视图渲染的核心包(通过React构建的WEB应用)

  • react-scripts:包含运行和打包react应用程序的所有脚本及配置

使用create-react-app 创建的项目默认是无法修改其内部的webpack配置的,不像vue-cli那样可以通过一个配置文件修改,这是为了让项目目录看起来干净简洁,把项目的打包规则以及相关的插件/loader等都隐藏到了node_modules目录下,react-scripts是脚手架中对打包命令的一种封装,基于它打包,会调用node_modules中的webpack等进行处理。

2.2、scripts
  • start:"react-scripts start":开发环境:在本地启动web服务

  • "build": "react-scripts build":打包命令,打包的内容输出到dist目录下

  • "test": "react-scripts test":单元测试命令

  • "eject": "react-scripts eject":暴漏webpack配置规则

2.3、browserslist

浏览器兼容性规则

"browserslist": {
    "production": [
      ">0.2%",    全球超过0.2%的人使用的浏览器
      "not dead",  还存活着的
      "not op_mini all" 不考虑op_mini浏览器的全部版本的兼容性
    ],
    "development": [
      "last 1 chrome version",表示兼容到谷歌的上一个版本
      "last 1 firefox version",表示兼容到火狐的上一个版本
      "last 1 safari version" 表示兼容到safari的上一个版本
    ]
  }

Browserslist:可以在这个网站比较方便查看目标浏览器范围百分比

三、yarn包管理器

1、简介

Yarn是由Facebook、Google、Exponent 和 Tilde 联合推出了一个新的 JS 包管理工具 , yarn 包管理器,和 npm 的作用一模一样。都是用来管理项目中 node_modules 目录中的所有依赖包 Yarn 是为了弥补 npm 的一些缺陷而出现的

yarn的官方: Yarn 中文文档

2、安装yarn

在终端上执行如下命令进行全局安装yarn

npm i -g yarn

安装完成之后,可以执行如下命令查看yarn的版本

yarn --version

3、yarn命令使用

3.1、初始化项目
yarn init
3.2、安装依赖包
yarn add [package]    //下载最新版本
yarn add [package]@[version] //下载具体的版本
yarn add [package] --dev //下载的是运行时的依赖
yarn global add [package] //全局下载
3.3、移除依赖包
yarn remove [package]
3.4、安装项目的全部依赖
yarn
或者
yarn install
3.5、配置镜像

设置yarn的淘宝镜像

yarn config set registry https://registry.npm.taobao.org

查看镜像源

yarn config get registry

配置node-sass镜像

yarn config set sass_binary_site http://cdn.npm.taobao.org/dist/node-sass
3.6、查看全局安装的位置
yarn global dir

四、使用craco插件进行webpack的配置

如果要修改create-react-app脚手架的默认配置,有如下方案

  • 通过执行yarn eject命令,释放react-scripts中的所有配置到项目中,但这是一个不可逆的操作,同时也会失去CRA带来的便利和后续升级

  • 通过第三方库来修改,比如@craco/craco

1、craco插件的安装

  • 安装修改CRA的配置的包

yarn add -D @craco/craco
  • 修改packge.json中的脚本命令

 "scripts": {
    "start": "craco start",
    "build": "craco build",
    "test": "craco test",
    "eject": "react-scripts eject"
  }
  • 在项目的根目录中创建craco的配置文件(craco.config.js),用于修改默认配置

module.exports={
  	
}

2、修改项目的端口

在craco.config.js中配置如下

process.env.PORT=3002

3、配置别名

  • 在项目的根目录中创建craco的配置文件(craco.config.js),并在配置中配置别名

const path=require('path')
module.exports={
    webpack:{
        alias:{
            '@':path.resolve(__dirname,'src')
        }
    }
}
  • 在代码中,就可以通过@来表示src目录的绝对路径

  • 重启项目,让配置生效

3、别名路径提示

在项目的根目录下创建jsconfig.json配置文件,并在项目中添加如下提示

{
    "compilerOptions": {
         "baseUrl": "./",
         "paths": {
            "@/*":["src/*"]
         }
    }
}

五、项目初始化

1、安装scss

2、安装px-to-vw插件

  • 在vscode的扩展中搜索"px-to-vw",安装

  • 在vscode---->设置---->输入px-to-vw---->在里面输入设计稿宽度,即可通过插件进行单位自动转化

  • 按住键盘alt + z快捷键,可以看到px单位被自动转换为vw单位了

3、重置样式

  • 在Normalize.css: Make browsers render all elements more consistently.官网上下载normalize.css

  • 在assets中定义normalize.css,将下载好的normalize.css内容复制进来

  • 然后在App.scss页面中引入

@import url('./assets/reset.css');

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PAT 1136 A Delayed Palindrome

个人学习记录,代码难免不尽人意 A B C where A is the original number, B is the reversed A, and C is their sum. A starts being the input number, and this process ends until C becomes a palindromic number – in this case we print in the last line …

图文并茂:Python Tkinter从入门到高级实战全解析

目录 介绍什么是Tkinter?准备工作第一个Tkinter程序界面布局事件处理补充知识点 文本输入框复选框和单选框列表框弹出对话框 综合案例:待办事项列表总结 介绍 欢迎来到本篇文章,我们将带您深入了解如何在Python中使用Tkinter库来创建图形用…

拓世科技集团 | “书剑人生”李步云学术思想研讨会暨李步云先生九十华诞志庆

2023年,中国改革开放迎来了45周年,改革春风浩荡,席卷神州大地,45年间,中国特色社会主义伟大事业大步迈入崭新境界,一路上结出了饶为丰硕的果实。中华民族在这45年间的砥砺前行,不仅使中国的经济…

API 接口应该如何设计?如何保证安全?如何签名?如何防重?

说明:在实际的业务中,难免会跟第三方系统进行数据的交互与传递,那么如何保证数据在传输过程中的安全呢(防窃取)?除了https的协议之外,能不能加上通用的一套算法以及规范来保证传输的安全性呢&am…

机器学习-神经网络(西瓜书)

神经网络 5.1 神经元模型 在生物神经网络中,神经元之间相互连接,当一个神经元受到的外界刺激足够大时,就会产生兴奋(称为"激活"),并将剩余的"刺激"向相邻的神经元传导。 神经元模型…

周鸿祎为360智脑招贤纳士;LLM时代的选择指南;Kaggle大语言模型实战;一文带你逛遍LLM全世界 | ShowMeAI日报

👀日报&周刊合集 | 🎡生产力工具与行业应用大全 | 🧡 点赞关注评论拜托啦! 🤖 思否「齐聚码力」黑客马拉松,用技术代码让生活变得更美好 主页:https://pages.segmentfault.com/google-hacka…

38. 连续签到领金币数

文章目录 题目需求思路一实现一题目来源 题目需求 用户每天签到可以领1金币,并可以累计签到天数,连续签到的第3、7天分别可以额外领2和6金币。 每连续签到7天重新累积签到天数。 从用户登录明细表中求出每个用户金币总数,并按照金币总数倒…

【Go 基础篇】探索Go语言中Map的神奇操作

嗨,Go语言的学习者们!在编程世界中,Map是一个强大而又有趣的工具,它可以帮助我们高效地存储和操作键值对数据。Map就像是一本字典,可以让我们根据关键字(键)快速找到对应的信息(值&a…

爬虫逆向实战(二十三)--某准网数据

一、数据接口分析 主页地址:某准网 1、抓包 通过抓包可以发现数据接口是api_to/search/company_v2.json 2、判断是否有加密参数 请求参数是否加密? 通过查看“载荷”模块可以发现b参数和kiv参数是加密参数 请求头是否加密? 无响应是否加…

2023-08-27 LeetCode每日一题(合并区间)

2023-08-27每日一题 一、题目编号 56. 合并区间二、题目链接 点击跳转到题目位置 三、题目描述 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组&#…

oracle19c-静默安装(centos7)

目录 一.环境准备1.关闭防火墙2.关闭SELINUX3.配置本地yum源4.安装ORACLE先决条件的软件包5.修改LINUX的内核文件6.添加下列参数到/etc/security/limits.conf7.添加下列条目到/etc/pam.d/login8.环境变量中添加下列语句9.创建文件目录和相应的用户10.配置oracle用户的环境变量1…

uniapp 开发微信小程序使用echart的dataZoom属性缩放功能不生效!bug记录!

在本项目中使用的是这个echart库 在项目中添加了dataZoom配置项但是不生效,突然想到微信小程序代码大小的限制,之前的echarts.js是定制的,有可能没有加dataZoom组件。故重新定制echarts.js。之前用的echarts版本是5.0.0,这次也是…

【优化算法】Python实现面向对象的遗传算法

遗传算法 遗传算法(Genetic Algorithm)属于智能优化算法的一种,本质上是模拟自然界中种群的演化来寻求问题的最优解。与之相似的还有模拟退火、粒子群、蚁群等算法。 在具体介绍遗传算法之前,我们先来了解一些知识🧀 DNA: 携带有…

R语言常用数学函数

目录 1. - * / ^ 2.%/%和%% 3.ceiling,floor,round 4.signif,trunc,zapsamll 5.max,min,mean,pmax,pmin 6.range和sum 7.prod 8.cumsum,cumprod,cummax,cummin 9.sort 10. approx 11.approx fun 12.diff 13.sign 14.var和sd 15.median 16.IQR 17.ave 18.five…

layui框架学习(42:文件上传模块-上)

之前学习asp.net core编程入门教程时结合layui测试过文件上传《基于ASP.Net Core和Layui的多文件上传》,但没有认真学习过layui的文件上传模块,本文开始,计划分两章学习并记录文件上传模块中的属性、事件及函数的使用方法。   layui中的文件…

第八章 贪心算法 part03 1005.K次取反后最大化的数组和 134. 加油站 135. 分发糖果 (day34补)

本文章代码以c为例! 一、力扣第1005题:K 次取反后最大化的数组和 题目: 给你一个整数数组 nums 和一个整数 k ,按以下方法修改该数组: 选择某个下标 i 并将 nums[i] 替换为 -nums[i] 。 重复这个过程恰好 k 次。可以多次选择…

kafka--技术文档--架构体系

架构体系 Kafka的架构体系包括以下几个部分: Producer. 消息生产者,就是向Kafka broker发送消息的客户端。Broker. 一台Kafka服务器就是一个Broker。一个集群由多个Broker组成。一个Broker可以容纳多个Topic。Topic. 可以理解为一个队列,一…

Spring Boot(Vue3+ElementPlus+Axios+MyBatisPlus+Spring Boot 前后端分离)【五】

😀前言 本篇博文是关于Spring Boot(Vue3ElementPlusAxiosMyBatisPlusSpring Boot 前后端分离)【五】,希望你能够喜欢 🏠个人主页:晨犀主页 🧑个人简介:大家好,我是晨犀,希望我的文章…

PDF制作成翻页电子书

在日常工作中,大部分人使用的都是PDF文档发送给客户,但是PDF文档通常是静态的,缺乏交互性和视觉吸引力。那你有没有想过把它转换成翻页的电子书呢? 小编将告诉你操作步骤,非常简单 1.搜索FLBOOK在线制作电子杂志平台 …

oracle 基础运用2

首先在电脑上安装PLSQL developer,这个是oracle图形化连接工具,然后安装win64_11gR2_client,这个是orace客户端,安装完成后可以在cmd命令行输入sqlplus命令进行验证,如图表示安装成功。 作为sys的连接应该是SySDBA或Sy…
最新文章