今日文章目录
- 资料夹结构概述
- 参考资料
今天写一点我对 React资料结构的基础了解,在写React的时候,稍微知道自己在干嘛。
(如果我有理解错误,拜托请告诉我)
├── node_modules
├── public
│ └── index.html
│
├── src
│ ├── App.jsx
│ ├── App.css
│ ├── index.css
│ └── index.jsx
│
├── .gitignore
├── package.json
├── yarn.lock
└── README.md
放置目前专案内会用到的所有载入的套件,由於档案庞大,这个资料夹git
并不会追踪(建置在.gitignore
)。
所有静态页面放置区,包含目前看到的index.html
、LOGO,或者提供给使用者下载的静态范例档等,都可以放置在这里。
index.html
: React官网一点开,开宗明义就写了React是「用来实作使用者介面的 JavaScript 函式库」。既然上面都说了是public
资料夹是放置静态页面,就表示不会在index.html
内撰写JS(我这里指的整个专案都使用React的情况)。内容只有一段: <div id="root"></div>
浏览器在渲染网页画面的时候,会把HTML解析成DOM(Document Object Model)。如果你理解DOM的概念,那麽这里的 root
也有类似的概念。作为 React DOM root,所有在 root
内的 element 都会交给React DOM管辖。
但别搞混,brower DOM ≠ React DOM!
节录官网片段
Unlike browser DOM elements, React elements are plain objects.
React DOM takes care of updating the DOM to match the React elements.
所有React进行的操作,都会放在这个资料内。
App.jsx
: 我通常会把 App.jsx
当作 所有 components 的集散地,比如有主要Router的设置。index.jsx
: 所有 Javascript 至 显示画面(public/index.html)的接口。ReactDOM.render(element, container)
,把要渲染的画面,塞进 root
节点。// index.jsx
ReactDOM.render(
<React.StrictMode>
<App />
</React.StrictMode>,
document.getElementById('root'),
);
纪录所有不需要git追踪的档案名称。
纪录所有专案使用的套件与套件版本。刚刚提到,node_modules
并不受git
追踪,代表每一次从远端提取最新进度时,不包含node_modules
资料夹。这时候就需要 package.json
内的套件纪录,搭配指令yarn install
重新载入所有套件与对应版本,重新产生node_modules
资料夹。
纪录所有专案使用的套件与套件本身所有依赖版本。与package.json
不同的是:
package.json
资料可以手动修改 ; yarn.lock
不行修改。
yarn install
套件载入的版本是可以在package.json
手动指定。yarn.lock
档案内容会自动更新。yarn.lock
纪录该专案使用套件所有依赖 ; 而package.json
只有纪录专案载入的该套件。
我们来举个例子:
package.json
snippet,里面纪录的依赖有 antd
react
react-dom
...等等。{
"name": "pomodoro-project",
"version": "0.1.0",
"private": true,
"dependencies": {
"antd": "^4.16.13",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-scripts": "4.0.3"
},
...
}
我们就以这次会使用到的UI套件antd
为例,从 node_modules
资料夹可以看到,antd
本身也有自己的package.json
,里面纪录了antd
套件内需要用到的依赖:
这就表示,如果我要使用antd
,就要把它需要的相关依赖都装上,才能确保使用的时候不出错,而在执行 yarn install
时,就会把需要的一起装好,很方便。
但是回到专案的package.json
,里面只有纪录 "antd": "^4.16.13"
,其他相关依赖都没写,如果哪天依赖升级,导致我的专案坏掉,我哪知道到底是哪个依赖出了问题?
所以就有了yarn.lock
,这里面除了纪录antd
确切载入版本之外,相关依赖也都有纪录,我们就可以藉由yarn.lock
里面纪录的所有依赖版本,来拯救我的专案。
主版本号.次版本号.修订版本号
major.minor.build
大版本号: 重大更新使用
中版本号: 更新使用,比如:新增功能。
小版本号: 修正错误使用
版本号前面常见符号:
^
: 更新版本以大版本号不动,接受中、小版本号更新。~
: 更新版本以中版本号不动,接受小版本号更新。-React 官网
-React render()
-yarn lock
-版本编号的命名规则
今天的实作内容主要根据教学网站进行。 接续昨天的内容,今天将实作model和form的测试程序。 内...
Hello 大家, 来到了连假的第三天, 时间消逝得太快... 总觉得还没有太放松假期就要结束了QQ...
安装的部分都介绍完了,有一个部分大家可能有些困惑,在新增主机 Host 的时候为什麽要加 Templ...
古语有云:「岁有凶穰;故谷有贵贱;令有缓急;故物有轻重。」旨在告诉後人,做任何事情,一定要先搞清楚状...
Signaling server 在 WebRTC 中扮演什麽角色 前面说到 WebRTC 使用 S...