【11】基础知识:React脚手架

news/2024/7/15 19:12:54 标签: react.js, 前端, 前端框架

一、脚手架定义

xxx 脚手架:用来帮助程序员快速创建一个基于 xxx 库的模板项目

1、包含了所有需要的配置(语法检查、jsx 编译、devServer…)

2、下载好了所有相关的依赖

3、可以直接运行一个简单效果

二、使用 create-react-app 创建 react 应用

react 提供了一个用于创建 react 项目的脚手架库:create-react-app

项目的整体技术架构为: react + webpack + es6 + eslint

使用脚手架开发的项目的特点:模块化、组件化、工程化

创建项目并启动

第一步,全局安装:npm i -g create-react-app

第二步,切换到想创项目的目录,使用命令:create-react-app hello-react

第三步,进入项目文件夹:cd hello-react

第四步,启动项目:npm start

react 脚手架项目结构

public ---- 静态资源文件夹
	favicon.icon ------ 网站页签图标
	index.html -------- 主页面
	logo192.png ------- logo图
	logo512.png ------- logo图
	manifest.json ----- 应用加壳的配置文件
	robots.txt -------- 爬虫协议文件
src ---- 源码文件夹
	App.css -------- App组件的样式
	App.js --------- App组件
	App.test.js ---- 用于给App做测试
	index.css ------ 样式
	index.js ------- 入口文件
	logo.svg ------- logo图
	reportWebVitals.js --- 页面性能分析文件(需要web-vitals库的支持)
	setupTests.js ---- 组件单元测试的文件(需要jest-dom库的支持)

三、hello react 案例

1、新建 public 目录,创建 index.html 主页面

2、新建 src 目录

初始化 App.js 组件(组件可以使用 .jsx 结尾,与 js 进行区别)

/* 创建“外壳”组件App */

// 引入React,通过 React.Component 形式使用
// import React from 'react' 

// 引入React. 引入React.Component
import React, { Component } from 'react'

// 引入Hello组件
import Hello from './components/Hello/Hello'
// 引入Welcome组件
import Welcome from './components/Welcome/Welcome'

// 创建暴露App组件
export default class App extends Component {
  render() {
    return (
      <div>
        <Hello />
        <Welcome />
      </div>
    )
  }
}

index.js 配置应用入口文件

// 引入React核心库
import React from 'react'
// 引入ReactDOM
import ReactDOM from 'react-dom/client'
// 引入App组件
import App from './App'

// 渲染App组件到页面 ReactDOM.render is no longer supported in React 18 (18以下版本)
// import ReactDOM from 'react-dom'
// ReactDOM.render(<App />, document.getElementById('root'))

// 渲染App组件到页面 (18版本使用形式)
ReactDOM.createRoot(document.getElementById('root')).render(<App />)

3、src 目录下创建 components 目录

新建 Hello 组件 (Hello.jsx)

// 引入React. 引入React.Component
import React, { Component } from 'react'
// 引入style
import './Hello.css'

// 创建并暴露Hello组件
export default class Hello extends Component {
  render() {
    return (
      <h2 className="title">Hello - react!</h2>
    )
  }
}

Welcome 组件 (Welcome.js)

// 引入React. 引入React.Component
import React, { Component } from 'react'
// 引入style
import './Welcome.css'

// 创建并暴露Welcome组件
export default class Welcome extends Component {
  render() {
    return (
      <h2 className="bg">Welcome!</h2>
    )
  }
}

使用 css 形式写样式时,css 文件最终都会引入到 App.jsx 中,如果样式名重复,会出现样式覆盖。解决方法:

1、每个组件样式名注意不要重复

2、使用 less 语法,最外层 样式名 为 组件名,进行区分(例如,.hello { …} .welcome {…} )

3、css 模块化

Hello.css 命名改为  Hello.module.css

import './Hello.css' 引入改为 import hello from './Hello.module.css' 

className="title" 使用形式改为 className={hello.title}

Welcome 组件样式改为同上形式

四、React 插件 ES7+ React/Redux/React-Native snippets

插件市场安装 ES7+ React/Redux/React-Native snippets

rcc:Reac Class Component,React中的类式组件代码片段

rfc:Reac Function Component,React中的函数式组件代码片段

五、功能界面的组件化编码流程(通用)

1、拆分组件:拆分界面,抽取组件

2、实现静态组件:使用组件实现静态页面效果

3、实现动态组件

动态显示初始化数据:数据类型、数据名称、保存在哪个组件

交互(从绑定事件监听开始)


http://www.niftyadmin.cn/n/5091056.html

相关文章

Linux友人帐之编译器gcc/g++的使用

一、程序的翻译过程 在C语言中&#xff0c;我们已经学过程序的编译和链接&#xff0c;在这里将复习一下我们之前所学的内容并引出后续gcc/g的内容。 1.1程序的翻译过程 预处理&#xff08;头文件展开&#xff0c;去注释&#xff0c;宏替换&#xff0c;条件编译&#xff09;编…

leetCode 1143.最长公共子序列 动态规划 + 图解

此题我的往期文章推荐&#xff1a; leetCode 1143.最长公共子序列 动态规划 滚动数组-CSDN博客https://blog.csdn.net/weixin_41987016/article/details/133689692?spm1001.2014.3001.5501leetCode 1143.最长公共子序列 一步步思考动态规划 优化空间复杂度_呵呵哒(&#xf…

Java多线程悲观锁和乐观锁

悲观锁&#xff1a; 一上来就加锁&#xff0c;没有安全感&#xff0c;每次只能一个线程进入访问完毕后&#xff0c;再解锁。 线程安全&#xff0c;性能较差 乐观锁&#xff1a; 一开始不上锁&#xff0c;认为是没有问题的&#xff0c;大家一起跑&#xff0c;等要出现线程安全问…

day007

环形链表 141. 环形链表 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统内部使用整数 pos 来表示链表尾连接到…

专栏汇总(一)

专栏1&#xff1a;https://blog.csdn.net/lovemy134611/category_12417811.html 部分文章&#xff1a;PyTorch深度学习实战&#xff08;20&#xff09;——从零开始实现Fast R-CNN目标检测-CSDN博客

利达卓越:发挥金融力量,促进团队发展

随着中国经济的快速增长和金融改革的逐步深化&#xff0c;我国金融业取得了令人瞩目的发展。作为经济的重要支柱&#xff0c;我国金融业的规模和实力不断扩大&#xff0c;已经成为全球最大的金融市场之一。利达卓越是一支由管理精英组成的团队&#xff0c;专注于金融行业的投资…

MoeCTF2023web

01http 打开题目环境 可以看到要求完成所有任务&#xff0c;这里用burp抓个包 按照要求修改可以得到flag moectf{basic_http_knowledge_HJbg427uFuznTqiJdtS1xhZNwpdsOnKU} 02 Web入门指北 直接找到结尾发现乱码&#xff0c;去解码 编码可以试试url编码和base64到16 这里用…

思维模型 正/反 木桶理论

本系列文章 主要是 分享 思维模型&#xff0c;涉及各个领域&#xff0c;重在提升认知。 1 正/反 木桶理论的应用 1.1 木桶理论的应用 1.1.1 正木桶理论在考试中的应用 小明是一名理科高中生&#xff0c;他在学习过程中发现自己在数理化方面表现较好&#xff0c;但在语文和英…