博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
从零开始React项目架构(二)
阅读量:6085 次
发布时间:2019-06-20

本文共 3263 字,大约阅读时间需要 10 分钟。

前言


这篇文档我们来配置 eslint,创建项目文件、目录架构

开发


一、配置eslint

配置eslint我需要安装一些依赖包:

npm install -D eslint eslint-loader eslint-plugin-react babel-eslint复制代码

修改webpack.config.js文件

{    test:/\.(js|jsx)$/,    use:["babel-loader", "eslint-loader"],    exclude:/node_modules/}复制代码

创建.eslintrc.js 文件

module.exports = {    "env": {        "browser": true,        "commonjs": true,        "es6": true    },    "extends":[        "eslint:recommended",        'plugin:react/recommended',    ],    "parser": 'babel-eslint',    "parserOptions": {        "ecmaFeatures": {            "experimentalObjectRestSpread": true,            "jsx": true        },        "sourceType": "module"    },    "plugins": [        "react"    ],    "rules": {        "indent": [            "error",            4        ],        "linebreak-style": [            "error",            "windows"        ],        "quotes": [            "error",            "single"        ],        "semi": [            "error",            "never"        ],        'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,        'no-console': 0    }};复制代码

当然,也可以使用eslint --init来创建

> eslint --init? How would you like to configure ESLint? Answer questions about your style? Are you using ECMAScript 6 features? Yes? Are you using ES6 modules? Yes? Where will your code run? Browser? Do you use CommonJS? Yes? Do you use JSX? Yes? Do you use React? Yes? What style of indentation do you use? Spaces? What quotes do you use for strings? Single? What line endings do you use? Windows? Do you require semicolons? No? What format do you want your config file to be in? JavaScript复制代码

eslint 的配置规则有很多,可以按照自己喜欢的方式来,网上也有很多很好的规则,这里就不一一介绍了。

二、完善项目文件、目录结构

先来看下我们上一篇时创建的简单目录结构

├── src                     │   ├── index.html                │   └── index.js                              ├── .gitignore├── package-lock.json├── package.json└── webpack.config.js复制代码

很简单,实际项目中的结构不会这么简单,让我总体看下实际的目录结构吧

├── mock                            # 本地模拟数据├── public├── src|   ├── assets                      # 本地静态资源│   ├── common                      # 应用公用配置,如导航信息│   ├── components                  # 项目通用通用组件│   ├── routes                      # 业务页面入口和常用模板│   ├── utils                       # 工具库│   ├── index.html                  # HTML 入口模板│   ├── index.js                    # 应用入口│   ├── index.less                  # 全局样式│   └── router.js                   # 路由入口├── tests                           # 测试工具├── .babelrc├── .eslintrc.js├── .gitignore├── package-lock.json├── package.json└── webpack.config.js复制代码

我的目录结构大概就是这样,可能会有差别哦~

好,下面让我们创建一些代码,在routes文件夹下创建一个Home.jsx

import React, {PureComponent} from 'react'export default class Home extends PureComponent{    render(){        return (            
Hello World!
) }}复制代码

router.js

import React from 'react'import {Route,HashRouter} from 'react-router-dom'import Home from './routes/Home.jsx'const RouterConfig = ()=>{    return (        
)}export default RouterConfig复制代码

index.js

import React from 'react'import ReactDOM from 'react-dom'import Router from './router'ReactDOM.render(    
, document.getElementById('root'))复制代码

然后我们 npm start下,又是和Hello World相见的时候了。

总结


本篇主要讲了2点

  1. 配置eslint
  2. 项目目录结构

下篇我们来介绍实现mock本地数据模拟接口

系列文章


转载地址:http://sluwa.baihongyu.com/

你可能感兴趣的文章
阿里云公共镜像、自定义镜像、共享镜像和镜像市场的区别 ...
查看>>
shadowtunnel v1.7 发布:新增上级负载均衡支持独立密码
查看>>
Java线程:什么是线程
查看>>
mysql5.7 创建一个超级管理员
查看>>
【框架整合】Maven-SpringMVC3.X+Spring3.X+MyBatis3-日志、JSON解析、表关联查询等均已配置好...
查看>>
要想成为高级Java程序员需要具备哪些知识呢?
查看>>
带着问题去学习--Nginx配置解析(一)
查看>>
onix-文件系统
查看>>
java.io.Serializable浅析
查看>>
我的友情链接
查看>>
多线程之线程池任务管理通用模板
查看>>
CSS3让长单词与URL地址自动换行——word-wrap属性
查看>>
CodeForces 580B Kefa and Company
查看>>
开发规范浅谈
查看>>
Spark Streaming揭秘 Day29 深入理解Spark2.x中的Structured Streaming
查看>>
鼠标增强软件StrokeIt使用方法
查看>>
本地连接linux虚拟机的方法
查看>>
某公司面试java试题之【二】,看看吧,说不定就是你将要做的题
查看>>
BABOK - 企业分析(Enterprise Analysis)概要
查看>>
Linux 配置vnc,开启linux远程桌面
查看>>