美文网首页前端开发框架
Ant Design Pro 教程 -- 2.准备开发环境

Ant Design Pro 教程 -- 2.准备开发环境

作者: 旺财sz | 来源:发表于2019-05-09 13:49 被阅读0次

      得益于前端技术和开源的发展,前端生态日益丰富,有非常多的框架工具包,React 就是其中之一。React 本身也用到了其他的工具包。为了能高效的管理这些工具包之间的依赖关系,必须有个强有力的包管理工具。在前端社区中,Npm 是最主要的包管理工具,Npm 是 NodeJS 提供的。在开始 React 学习之前,我们需要先安装 NodeJS。不需要害怕,我们并不需要学习 NodeJS,只需要掌握 Npm 几个命令就够了。

      安装 NodeJS 很简单,到 NodeJS 官网找到你需要平台和版本下载安装即可。笔者使用的是 ubuntu,使用的是协作的时候最新的 LTS 版本 v10.15.3。Windows 平台可以直接通过链接 https://nodejs.org/dist/v10.15.3/node-v10.15.3-x64.msi 下载安装。以下是几个平台的安装命令参考。没有提到的平台,请打开 https://nodejs.org/en/download/ 下载。我们只需要用到最基本的 Npm 功能,对于 Npm 的版本没有特殊的要求,选择最新的 LTS 版本就好。

    # Ubuntu
    curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
    sudo apt-get install -y nodejs
    
    # Debian, as root
    curl -sL https://deb.nodesource.com/setup_10.x | bash -
    apt-get install -y nodejs
    
    # macOS
    brew install node
    

      安装完成后,可以用 node -v 命令和 npm -v命令验证下是否安装成功。

    root@43910056a2ce:/data# node -v
    v10.15.3
    root@43910056a2ce:/data# npm -v
    6.4.1
    

      因为 npm 安装依赖是从国外服务器下载,受网络影响大,可能出现异常,淘宝团队做了一个 npm 镜像 cnpm。cnpm 就是中国版的 npm,安装命令如下。

    #安装 cnpm
    npm install -g cnpm --registry=https://registry.npm.taobao.org
    

      React 提供了一个快速创建 React 工程的命令工具 create-react-app。下面我们通过 cnpm 工具来安装 create-react-app。

    cnpm install --global create-react-app
    #cnpm install 是安装命令,--global 参数告诉安装命令将工具安装到系统全局,安装到系统全局的工具,可以直接在命令使用。
    

      后续在使用 create-react-app工具的时候,工具中还是有直接使用 npm 命令的地方,如果遇到命令执行慢的情况,可以考虑直接配置 npm 镜像指向 https://registry.npm.taobao.org。方法如下:

    npm config set registry https://registry.npm.taobao.org
    

      现在需要安装的依赖都完成了,可以开始 React 之旅了。我们先从一个示例工程开始,创建一个 helloworld 工程,命令如下:

    #在当前目录下创建 helloworld 工程
    create-react-app helloworld
    #进入工程目录
    cd helloworld
    #启动工程。create-react-app 创建的工程已经包含了基础示例页面,是可以立即执行的
    npm start
    

      启动命令会自动打开浏览器显示工程的主页。如果没有自动打开,可以在浏览器中打开,默认的地址是 http://localhost:3000。如果默认的端口 3000 被占用,命令行会提示换一个端口。这个缺省创建的实例运行如图:

    react-demo.png

      浏览器不要关闭,npm start 命令会一直检测工程内容,当工程内容修改的时候,会立即编译运行,浏览器也会自动刷新页面,显示最新的变更。

      项目的目录结构如下:

    root@6ae880e801ea:/data/workspace/helloworld# tree -I node_modules
    .
    |-- README.md
    |-- package.json
    |-- public
    |   |-- favicon.ico
    |   |-- index.html
    |   `-- manifest.json
    `-- src
        |-- App.css
        |-- App.js
        |-- App.test.js
        |-- index.css
        |-- index.js
        |-- logo.svg
        `-- serviceWorker.js
    

      其中README.md 是通用的指导我们如何运行、测试、构建工程的简要说明。package.json 是 NodeJS 管理项目依赖的配置文件,我们基本不用自己配置,所以可以暂时不用管这个文件。

    public 目录

    favicon.ico 是网站 logo 缩略图。index.html 是网站的入口主页,可以根据自己的需要调整。manifest.json 文件是w3c的webapp规范,用来配置应用的信息(比如应用名称、作者、icon 和描述),当用户将应用添加到桌面的时候,
    会以这个文件中的内容作为图标和文字的显示内容。

    src 目录

    App.js 是示例组件,App.css 是示例组件的样式,App.test.js 则是示例组件的测试代码。工程全部内容就是这个示例组件,也就是上图工程截图显示的内容,我们暂时不用深入探究这个示例组件。

    index.css 和 index.js 是主页的样式和代码。代码中除了引入依赖,只有两行代码,第一行是将组件 App 渲染到一个 id 为 root 的 DOM 元素。这是后面会讲到的JSX 语法。第二行是和性能有关的,在性能章节再深入探讨,这里可以不管,可以直接注释掉。

    logo.svg
    网站 logo 矢量图

    serviceWorker.js
    主要逻辑是用于在生产环境中为用户在本地创建一个service worker 来缓存资源到本地,提升应用的访问速度,具体可以参考代码文件中的注释,等性能章节再深入探讨。

    ReactDOM.render(<App />, document.getElementById('root'));
    
    // If you want your app to work offline and load faster, you can change
    // unregister() to register() below. Note this comes with some pitfalls.
    // Learn more about service workers: https://bit.ly/CRA-PWA
    serviceWorker.unregister();
    

      按照惯例,我们先来个 helloworld 试试。需要做的很简单,只需要修改 src/index.js,用<H1>Hello World!</h1> 替换<App />,修改后的内容如下:

    ReactDOM.render(<h1>Hello World!</h1>, document.getElementById('root'));
    
    // If you want your app to work offline and load faster, you can change
    // unregister() to register() below. Note this comes with some pitfalls.
    // Learn more about service workers: https://bit.ly/CRA-PWA
    //serviceWorker.unregister();
    

      回到刚刚打开的页面,会发现内容自动刷新了(如果页面已经关闭,可以重新打开)。


    helloworld.png

    相关文章

      网友评论

        本文标题:Ant Design Pro 教程 -- 2.准备开发环境

        本文链接:https://www.haomeiwen.com/subject/parwoqtx.html