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.hqwc.cn/news/99169.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OB Cloud助力泡泡玛特打造新一代分布式抽盒机系统

作为中国潮玩行业的领先者,泡泡玛特凭借 MOLLY、DIMOO、SKULLPANDA 等爆款 IP,以及线上线下全渠道营销收获了千万年轻人的喜爱,会员数达到 2600 多万。2022 年,泡泡玛特实现 46.2 亿元营收,其中线上渠道营收占比 41.8%…

【【萌新的STM32的学习--非正点原子视频的中断设计思路】】

萌新的STM32学习–非正点原子视频的中断设计思路 我们分析而言 我们对于PA0 的设计就从此而来 对于边沿触发的选择我们已经有所了解了 我们下拉,但是当我们摁下开关的时候 从0到1 导通了 所以这个是下拉 上升沿触发 而对于KEY0 我们摁下是使得电路从原来悬空高阻态…

自学Python01-创建文件写入内容

此处省去安装和前言,需要两个东西 一个去下载安装python官方库 Welcome to Python.org 一个是编译器pycharm PyCharm 安装教程(Windows) | 菜鸟教程 PyCharm: the Python IDE for Professional Developers by JetBrains 第一节 练习print…

海域可视化监管:浅析海域动态远程视频智能监管平台的构建方案

一、方案背景 随着科技的不断进步,智慧海域管理平台已经成为海洋领域监管的一种重要工具。相比传统的视频监控方式,智慧海域管理平台通过建设近岸海域视频监控网、海洋环境监测网和海上目标探测网络等,可实现海洋管理的数字化转型。 传统的…

《人生苦短——我学Python》条件判断->双向选择(if--else)

今天我们来学习双向选择判断。顾名思义,双向就是两种选择选其一,即if----else。如果If的条件不成立,则执行else下的语句,否则执行if下面的语句。显然,它们是互斥的!下面就让我们来详细看看吧! 文…

springboot自定义表格(动态合并单元格)

一、需求展示&#xff08;一个订单多个商品&#xff0c;商品数量不限订单行合并&#xff09; 二、技术选型&#xff08;jxls自定义模板&#xff09; <!-- 版本具体看官网Release&#xff0c;这里我们使用 2.13.0 --><dependency><groupId>org.jxls</group…

【数学建模竞赛】数据预处理知识总结1——数据清洗

数据预处理是什么 在数学建模赛题中&#xff0c;官方给所有参赛选手的数据可能受到主观或客观条件的影响有一定的问题&#xff0c;如果不进行数据的处理而直接使用的话可能对最终的结果造成一定的影响&#xff0c;因此为了保证数据的真实性和建模结果的可靠性&#xff0c;需要…

day 47 | ● 392.判断子序列 ● 115.不同的子序列

392.判断子序列 如果用dp判断true or false无法满足&#xff0c;所以dp用来表示以下标i-1为结尾的字符串s&#xff0c;和以下标j-1为结尾的字符串t&#xff0c;相同子序列的长度 func isSubsequence(s string, t string) bool {dp : make([][]int, len(s) 1)for i : 0; i &…

Redis基本了解

Redis 基于内存进⾏存储&#xff0c;⽀持 key-value 的存储形式&#xff0c;底层是⽤ C 语⾔编写的。 基于 key-value 形式的数据字典&#xff0c;结构⾮常简单&#xff0c;没有数据表的概念&#xff0c;直接⽤键值对的形式完成数据的管理&#xff0c;Redis ⽀持 5 种数据类型…

8月《中国数据库行业分析报告》已发布,聚焦数据仓库、首发【全球数据仓库产业图谱】

为了帮助大家及时了解中国数据库行业发展现状、梳理当前数据库市场环境和产品生态等情况&#xff0c;从2022年4月起&#xff0c;墨天轮社区行业分析研究团队出品将持续每月为大家推出最新《中国数据库行业分析报告》&#xff0c;持续传播数据技术知识、努力促进技术创新与行业生…

Ceph BlueStore 和双写问题

论开源分布式存储&#xff0c;Ceph大名鼎鼎。用同一个存储池融合提供块存储、对象存储、集群文件系统。在国内有近年使用量迅速攀升。 大型公司内部研发云虚拟化平台&#xff0c;常使用开源方案Openstack或者Kubernetes&#xff0c;配套的为虚机或容器提供块存储的开源方案&am…

Linux centos7 bash编程(循环与条件判断)

在编程训练中&#xff0c;循环结构与条件判断十分重要。 根据条件为真为假确定是否执行循环。 有时&#xff0c;根据条件的真假结果&#xff0c;决定执行哪些语句&#xff0c;这就是分支语句。 为了训练分支语句与循环语句&#xff0c;我们设计一个案例&#xff1a; 求一组…