React教程:Helloworld项目解析

先了解一下整个项目的目录结构,其实这一步的详细教学Facebook已经帮我写好了,你只要找到hello-world目录下的README.md文件,把里面的内容理一遍就清楚了。

只有几个简单的文件在public和src目录下,我们先了解一下每个文件的作用。

package.json
package.json定义了这个项目所需要的各种模块,以及项目的配置信息(比如名称、版本、许可证等元数据)。npm install命令根据这个配置文件,自动下载所需的模块,也就是配置项目所需的运行和开发环境。

{
  "name": "hello-world",
  "version": "0.1.0",
  "private": true,
  "devDependencies": {
    "react-scripts": "0.8.4"
  },
  "dependencies": {
    "react": "^15.4.1",
    "react-dom": "^15.4.1"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test --env=jsdom",
    "eject": "react-scripts eject"
  }
}

package.json文件内部就是一个JSON对象,该对象的每一个成员就是当前项目的一项设置。比如name就是项目名称,version是版本。dependencies表示依赖的其他JS库,devDependencies表示只有dev环境依赖的库。

index.html
浏览器访问的就是这个页面,React的组件都是附加到“root”这个div元素上的。

PUBLIC_URL:this feature is available with react-scripts@0.5.0
and higher.

react-scripts

create-react-app是通过react-scripts来创建项目的,而react-scripts是安装在项目的node_modules下的,每次创建时都会下载最新的react-scripts。react-scripts是一个基于开发环境的React项目生成工具。

npm run build: 会生成可部署的文件,在build目录下,可以直接把这个目录下的文件复杂到你的网站空间,就可以通过HTTP访问刚创建的Helloworld项目。

npm run eject: 这个命令是不可逆的,会使用Webpack, Babel来替换react-scripts Build和运行项目的工作。从载图或者package.json你可以观查到有什么变化。

对于目前处于练习阶段的我们,其实不需要使用eject,暂时不要去管Webpack, Babel等新的概念,我们先把注意力放在学习React的特性和规范上。

App组件

  • public/index.html是网页的模板,只有在public目录的文件才能被index.html访问到。
  • src/index.js是JavaScript的入口

真正显示的内容在React组件:App.js

import React, { Component } from 'react';
import logo from './logo.svg';
import './App.css';

class App extends Component {
  render() {
    return (
      <div className="App">
        <div className="App-header">
          <img src={logo} className="App-logo" alt="logo" />
          <h2>Welcome to React</h2>
        </div>
        <p className="App-intro">
          To get started, edit <code>src/App.js</code> and save to reload.
        </p>
      </div>
    );
  }
}

export default App;

import & export:虽说从字面上很容易看懂import和export的作用,特别是Java程序员对import再熟悉不过了。不过要理解JavaScript的import和export还需要选搞清楚JavaScript模块相关的知识,关于这一点我们以后再深入。现在我们只要知道,一个JavaScript文件要使用另一个JavaScript文件需要import,而一个JavaScript文件要提供一些函数或属性给别的JavaScript文件使用的话,需要export。

Index.js通过ReactDOM.render装App组件和Index.html中的root元素整合(绑定)在一起。

import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
import './index.css';

ReactDOM.render(
  <App />,
  document.getElementById('root')
);

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,841评论 18 139
  • 无意中看到zhangwnag大佬分享的webpack教程感觉受益匪浅,特此分享以备自己日后查看,也希望更多的人看到...
    小小字符阅读 8,220评论 7 35
  • 学习流程 参考文档:入门Webpack,看这篇就够了Webpack for React 一. 简单使用webpac...
    Jason_Zeng阅读 3,172评论 2 16
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,862评论 25 708
  • 给自己放假一分钟 就一分钟 打开窗户 连绵青山 蓝天白云 林立高楼 长街车流 哦 景致不错耶 给自己放假一分钟 就...
    静夜听雨_787f阅读 397评论 4 16