初识Reactjs的项目结构与思想
前言
一个月之前,学完了html、css、html5、css3。接下来,准备入坑传说中的前端框架,首先明白一个东西,什么是框架?框架顾名思义,是别人集成好的一系列技术,那么基于框架的开发,其实也就是在别人的东西上面进行二次开发。那么通过本篇博客,来认识认识比较主流的Reactjs框架,属于新手小白入门级别的文章,技术大牛可以略过,当然如果有幸能指点一二,本人也是非常感激!如有错漏,还请各位看到的大佬们指出错误的观点。
Reactjs官方
1 .传统方式:我们在html文档中定义 各种标签元素,比如什么div、a、img、button等等。就是一个传统的静态html文档。
<body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"><img src="logo512.png" height=200px width=200px><p> Edit src/App.js and save to reload.</p><a href="#">learn Reactjs</a></div></body>
2 .Reactjs:手写html文档?不,我们不这么做了,我们先申明一个空白的html文档,什么元素都不写,你自己画去吧,然后我们就能在这个空白文档中发挥我们的创造力,通过js语法来不断生成各种标签
/* index.html */<body><noscript>You need to enable JavaScript to run this app</noscript><div id="root"></div></body>
没错,他果然没在html里面写标签,那在哪里写的呢?继续看看源代码
/* index.js */
ReactDOM.render(<React.StrictMode><App /></React.StrictMode>,document.getElementById('root')
);
/* index.js */
import App from './App';
到这里其实还是不太明白,它高深的设计思想。那我不如回到实际一点,来看看它是怎么完成一个项目的。毕竟学这东西就是为了完成项目开发。
初识React项目
通过官方给出的安装教程,以及配合各位大佬的教程,终于完成环境的配置。
在这之前或许先得对nodejs、npm、webpack等有一定了解。
在进行下面安装步骤前,需要先安装nodejs环境,nodejs会默认安装npm工具。
1、安装react脚手架
npm install -g create-react-app
2、创建react项目
create-react-app myreactapp
3、进入项目目录
cd myreactapp
4、 启动项目
npm start
接下来就能看到它自己在你的默认浏览器上打开http://localhost:3000/
看看项目结构
1、README.md
这个文件数说明文件,主要是一些项目的描述性信息
2、package.json
依赖包的配置文件,这里面声明的包会通过npm下载到node_modules中
3、 .gitignore
这个文件时git版本管制忽略的配置文件
4、package-lock.json
根据官方文档,这个package-lock.json 是在 npm install
时候生成一份文件,用以记录当前状态下实际安装的各个npm package的具体来源和版本号。
5 、node_modules
用于存放第三方依赖模块, 这里面包含了react项目中会用到的一些组件,install的时候下载下来的
6、public
(1) index.html
是react项目的入口页面,也就是当你打开运行这个项目的时候,浏览器给你返回的那个页面。
(2)manifest.json
当web页面被用于Android主页面使用时的配置文件
(3)其他
存放一些公共的静态文件,比如图片等。
7 src
这个文件就是我们需要去改动的地方,也就是开发文件夹,主要存放我们的各种开发文件。src目录是我们保存源代码的地方。里面包含了一些我们自己使用的js文件,css文件,img文件等等
(1) index.js
index.js 是项目的入口js文件,系统默认将index.html对准了index.js,通过webpack将两者关联。
(2)App.js
它一个组件,有自己的结构,有自己的逻辑,有自己的样式,会依赖一些资源,会依赖某些其他组件。
通过index.js引入,然后将其渲染到index.html中
(3)css
一些样式文件
(4)其他
暂时不关注!
流程
捋一捋React的流程:
1、项目运行,系统默认打开index.html
2、index.html 引入 index.js文件
3、index.js 引入各种各样的组件,每个组件有自己的结构、样式、逻辑。
4、各种组件通过index.js渲染到空白的index.html中
5、我们就能看到一个五彩斑斓的网页了
到这里以后,我感觉雨停了、天晴了、我又行了!!!
有了阅读官方文档的自信了,当然这只是一个最原始,最基础的项目,不断学习,不断完善,不断扩充项目结构。以后遇到的时候会进行记录,直到能完成一个完整的企业级项目结构。
下一篇将会对官方文档进行学习和记录。
初识Reactjs的项目结构与思想相关推荐
- Django框架学习——1—(虚拟环境搭建、MVC思想与Django的MVT区别、Django项目的创建、运行Django项目、项目结构介绍)
1.虚拟环境搭建 创建新的Django框架的虚拟环境: 注意:如果没有pipenv指令,需要安装这个支持库,同时需要记住配置它的环境变量,否则虚拟环境会安装在默认文件夹下(一般是C:\Users\Ad ...
- boot sprint 项目结构_京淘项目03 08.28
JSP动态web资源,打war包 ##spring boot整合JSP 创建项目 spring SpringBoot整合web资源,, 在main文件下,新建webapp文件夹,,把WEBINF目录粘 ...
- openjdk8 项目结构_OpenJDK织机和结构化并发
openjdk8 项目结构 Project Loom是Hotspot Group赞助的项目之一,旨在向JAVA世界提供高吞吐量和轻量级的并发模型. 在撰写本文时,Loom项目仍在积极开发中,其API可 ...
- 认识ASP.NET 5项目结构和项目文件xproj
ASP.NET 5 在项目结构上做了很大的改变,我们以前熟悉的目录结构与项目文件内容都不太一样了,本篇文章带大家了解 ASP.NET 5 到底跟以前有哪些不一样的地方. 我们先用 Visual Stu ...
- Thingsboard 2.5 CE版本项目结构说明
Thingsboard 2.5 CE版本项目结构说明 目录 第一章 项目框架整理说明 第二章 thingsboard涉及到的流程图 第三章 项目框架涉及到的第三方包或插件 第四章 ThingsBoar ...
- Java Web项目结构
Java Web项目结构(一般) 1.Java src 2.JRE System Library 3.Java EE 6 Libraries 4.Web App Libraries 5.WebRoot ...
- iOS SwiftUI篇-1 项目结构
iOS SwiftUI篇-1 项目结构 介绍Xcode新建的SwiftUI模版项目结构.跟普通Storyboard模版项目的差异.SwiftUI项目的app启动流程.UIScene概念介绍.AppDe ...
- Android 项目结构说明
Android 项目结构说明 创建Android项目后,期目录结构如图 下面对图中的包和文件进行说明. 1.scr包 在scr包中,保存的是应用程序的源代码,如Java文件和AIDL文件. 2.g ...
- 【转载】C#编码标准━━项目设置和项目结构
1.总是在4级警高上建立你的项目. 2.在发布版(Release)中,把警告当成错误来对待(注意这并不是 Visual Studio的默认选项).我们建议在调试版(Debug)中也这样设置,尽管这不是 ...
最新文章
- c语言操作空间怎么打开_学好C语言,离大神更近一步,C环境的安装
- .NET平台开发必须掌握的XML知识(二)
- [转]listview中设置背景图片后 拉动变黑
- 不聊webpack配置,来说说它的原理
- Arrays.copyOfRange
- 无人机综合管理系统/web端后台管理系统/设备管理/运维管理/维护管理/人员管理/维修保养/配件管理/保养管理/团队管理/axure后台管理原型/axure原型/web端后台管理原型/rp原型
- 自实现进程管理器linux,【Linux工具篇】supervisor进程管理器
- Maximum Mode
- 转贴:win2008改造成准VISTA
- 为Android购买多个改装微信,安卓版微信带来超级重磅更新 微信终于开放账号ID修改功能喽(就是限制略多)...
- 小程序跳转到其他小程序
- 中美科学家造出“人-猴胚胎”,这会是魔幻剧情的开端吗?
- 使用python打印九九乘法表
- 传奇私服添加物品方法
- java中使用axis发布和调用webService
- MES如何对车间设备进行调度和控制实现智能化生产(一)
- 锐角三角函数怎么用计算机算,锐角三角函数:运用计算器
- 和ts一般怎么玩_TS夺冠后马上卖席位?微博电竞和其互关,以后热搜不愁了
- 【转载】iPhone开发论坛madhome--水平感应:flash CS5开发iPhone应用
- 【Python小游戏】2023兔年吉祥,祝大家辞旧迎新,前兔无量啦~兔年都在玩的这两款游戏,只有0.1%的人通关,你玩了吗?(内含福利源码)
热门文章
- 关于MouseDown和MouseDoubleClick事件冲突问题
- 联合阿里p8测试开发耗时一个月整理的全套从0开始到功能测试再到自动化测试再进阶测试开发学习路线图
- 心若向阳,无谓哀伤丶
- Android EditText 字数限制以及设置中文及中文符号算两个字符,英文及英文符号算一个字符的实现
- 生成式人工智能时代,如何寻找合适的创业伙伴?
- E. You Are Given Some Strings...(AC自动机)
- 动手实践丨基于ModelAtrs使用A2C算法制作登月器着陆小游戏
- 群晖NAS 7.X 搭建个人博客网站并发布公网 2/8
- PPTP服务器的端口
- debug版没有问题而release版本崩溃的解决方法探究