React入门-8.create-react-app搭建项目框架

news/2025/3/22 0:35:51
之前一直用VUE来进行项目开发。刚刚看了react的生态圈,真的是很厉害。单单脚手架就有传统创建单页面程序的create-react-app,有进行服务器端渲染的Next.js,还有快速创建网站的Gatsby。那就先从create-react-app开始说起。

1. 创建项目

create-react-app是react中最简单的创建单页面程序的方式。在使用它之前先保证你的机器上安装了Node环境,并且Node >= 6 ,npm >= 5.2

# 全局安装create-react-app
$ npm install -g create-react-app# 或 临时安装create-react-app
$ npx create-react-app my-app# 创建项目
create-react-app app02
cd my-app
npm start

这样,一个react单页面程序项目就创建好了。

clipboard.png

clipboard.png

2. 目录结构

clipboard.png

react目录结构更加清晰一下,src是我们编码的主要目录,这里我把一些不是特别重要的数据删除了,整理成如下

clipboard.png

那么比较关键代码就是index.js与App.js了,其中,index.js为入口文件,这里导入了react,react-dom,App.js并且在root元素上开始渲染App

index.js

// 导入react react-dom
import React from 'react';
import ReactDOM from 'react-dom';
// 导入全局css
import './index.css';
// 导入根组件
import App from './App';
// 在root元素上渲染根组件
ReactDOM.render(<App />, document.getElementById('root'));

App.js为一个组件,为了创建组件,需要继承创建类,并且继承React.Component,组件中的写法就与我们之前的学到的没什么区别了。如果需要用的css样式可以提前引入。

App.js

import React, { Component } from 'react';
import './App.css';class App extends Component {render() {return (<div className="App"><header className="App-header"><p>hello world</p></header></div>);}
}export default App;

3. 集成react-router

上面的代码中仅仅可以显示出helloworld,要想完成单页面程序的开发,需要在页面中进行页面局部刷新,加载各种子页面。这就就离不开路由。

1) 列表项目

安装react-router-dom

cnpm install react-router-dom --save

2) 定义路由页面
List.js

import React,{Component} from 'react'class List extends Component{render(){return (<h1>this is List</h1>)}
}export default List;

3) 在App.js中引入,并且使用

import React, { Component } from 'react';
import { BrowserRouter as Router,Route ,Link} from 'react-router-dom'import './App.css';
// 加载组件
import List from './List'
import About from './About'class App extends Component {render() {return (<Router><div><h1>App</h1><ul><li><Link to="/list">List</Link></li><li><Link to="/about">About</Link></li></ul><hr/><Route path="/list" component={List} /><Route path="/about" component={About} /></div></Router>);}
}
export default App;

GvnclDyH0f.gif


后面我们会重点说到react-router的应用


https://dhexx.cn/news/show-3721976.html

相关文章

新空间用fify.cn

http://www.fify.cn 转载于:https://www.cnblogs.com/webeasy/archive/2007/10/31/944256.html

spring-cloud-eureka 与 Ribbon负载均衡(二)

Ribbon简单介绍 1、 Ribbon主要提供客户端的软件负载均衡算法&#xff08;说白了就是排队的时候哪个队伍人少就排哪&#xff09;。 2、Ribbon客户端组件提供一系列完善的配置项如何连接超时、重试等。 3、负载均衡的算法可以自定义。 搭建环境 我这里搭建的是eureka的集群…

Tomcat中设计模式-观察者模式

开篇 观察者模式的定义&#xff0c;有多个对象在关注着一个对象&#xff0c;如果这个对象的状态发生了改变&#xff0c;其它依赖&#xff08;关注&#xff09;它的对象就会收到通知&#xff0c;然后在接收到通知以后各个对象做出相应的动作。 观察者模式涉及到两个概念(观察者和…

Meta标签中的apple-mobile-web-app-capable属性及含义

这meta的作用就是删除默认的苹果工具栏和菜单栏。 content有两个值”yes”和”no”,当我们需要显示工具栏和菜单栏时&#xff0c;这个行meta就不用加了&#xff0c;默认就是显示。

一条有关计算奇偶数的问题(SQL)

原来的问题是这样的&#xff1a;我的数据表如下 字段1 字段2 字段3 字段4 字段5 字段6 字段71 3 5 6 6 30 33 4 5 8 9 12 34 35 我想要的结果是再增加一个字段8&#xff0c;把每条…

yyy的python3第七天学习

望着小月亮&#xff1a;https://www.cnblogs.com/triple-y/ 请尊重原创&#xff1a;https://www.cnblogs.com/triple-y/p/9655753.html 第七天学习的总结 当需要保存或缓存一些文件的时候&#xff0c;就用序列化与反序列化操作&#xff08;二进制&#xff09; 转载于:https://w…

Spring Cloud Eureka 整合 feign 客户端(三)

feign简介 在上一节的 ribbon的demo中是配置并使用 RestTemplate &#xff08;或 HttpClient&#xff09;来访问微服务的api的&#xff0c;这里的feign不需要RestTemplate。Feign 是在 Ribbon的基础上进行了一次改进&#xff0c;采用接口的方式&#xff0c; 只需要创建一个接口…

EOS区块链的通信模型

今天我们推出了一个全新的系列&#xff0c;Hacking the Blockchain&#xff01;它适用于刚刚开始开发EOSIO的所有开发人员。它也适用于所有EOS Blockchain爱好者&#xff0c;他们不是完全技术性的&#xff0c;但想要搞清楚该技术的工作原理。 在每篇文章中&#xff0c;我们将探…

乐理学习

不同音的频率计算 写给理工科人看的乐理 十二平均律&#xff0c;每隔十二个&#xff0c;频率升一倍&#xff0c;以C作为duo为例0/12, 2/12, 4/12, 5/12, 7/12, 9/12, 11/12(自然大调&#xff0c;全全半全全全半)&#xff0c;分别作为1234567 转载于:https://www.cnblogs.com/di…

在C#程序中使用MYSQL数据库

一提起mysql数据库,好像就是在说java,jsp或者php,其实在所有程序中都可以使用mysql 数据库,其它的程序使用my sql数据库的方法是使用my sql 提供的odbc驱动,在.net 中可以使用类似于jdbc似的东东.它的名字是:MySQLDriverCS.dll.把它添加到.net的组件面板里,至于如何添加,则不是…