文章中我整理了 React.js 开发过程中一些参见问题的解答汇总,供大家参考。

1. 一些课程资源

课程完整的思维导图请查考文章:React.js 入门与实战课程思维导图,我使用的思维导图软件是 Mac 下的 iThoughtsx。

课程网站源码包请参考慕课问答区:课程里面说的各个章节的源码在哪里哦,此源码包含了 node_modules ,所以压缩文件达到了 1 个多 G,不过这样就保证了不会因为组件版本的原因引起的课程学习疑惑。

如果你想下载不包含 node_modules 的源码,请访问我上传到 GitHub 的版本:https://github.com/ParryQiu/IMOOC-React

2. 执行 webpack-dev-server --content-base src --hot --inline 出错

在新版本的 webpack-dev-server 中,因为取消了 content-base 参数,所以需要热加载自动刷新的话,直接执行命令 webpack-dev-server --hot --inline 即可。

3. 使用 Webpack 2 搭建的 React 浏览器自动刷新的项目模板

如果还是有同学不能搭建出能够浏览器自动刷新的配置,那么请直接下载我配置好并测试过的,使用最新的 webpack 2 配置的项目模版即可。
项目地址: https://github.com/ParryQiu/React-Webpack2-HMR-Template

运行方法

  • cd React-Webpack2-HMR-Template
  • npm install
  • npm start
  • 修改 index.js 文件代码,浏览器自动刷新

4. 安装了 React Developer Tool 后调试状态下不显示

请确认下载安装的版本是 2.0 版本,建议直接***后去官方商店下载,不要使用百度等搜索引擎搜索下载旧版本。

5. 缺少 react-html-attrs 插件

在项目文件夹下执行命令 npm install babel-plugin-react-html-attrs 即可。

6. 关于处理 babel-loader 没加载的错误

如果在运行 webpack-dev-server 的时候出现了如下的错误。

请执行以下命令 npm install babel-loader
重新运行后即可正常运行了。

7. 使用 React 中的 fetch

可以参考我的博文:在 JS 中使用 fetch 更加高效地进行网络请求

8. webpack-dev-server 占用端口 8080 的问题

当出现了端口占用的问题时,请结束掉占用端口的进程后重新运行即可。

9. 错误 The root route must render a single element 的处理

需要注意 Route 绑定的 component 中的 class 有没有添加 export default

10. 如何在chrome console 中打开 paint flashing

在 console 中的第二个窗口 rendering 下,如果不显示你可以在 console 下点击键盘 Esc 打开。

11. 父组件通过 refs 获取子组件真实 DOM 节点的问题

请参见问答区:父组件通过refs获取子组件真实dom节点的问题
主要是可以通过 ReactDOM.findDOMNode(this.refs.rootChild) 进行获取。

12. 代码跳转 Route 的问题

请参见问答区:老师你好,我想在点击登录的时候用router定位到特定页面怎么做?

13. 如何将 AntDesign 中的 getFieldProps 替换成 getFieldDecorator

请参见问答区:如果要把getFieldProps替换成getFieldDecorator的话
或者参见官方文档:Form 表单

14. Target container is not a DOM element

错误截图如下

原因是没有将页面的 JS 文件放在目标 div 的下面,注意下图正确的文件顺序。

15. 慕课没有发布的更新课程

之前录制了「项目优化实战与可维护代码的编写」,没有通过慕课的审核,所以分享给需要这部分知识的同学继续学习,注意,即使是这两集,也不可用于任何商业用途,否则必将追究一切的法律责任,小心 ^_^。

链接:https://pan.baidu.com/s/1mhJA9ks
密码:epaf

16. React Router 4.0 中 location undefined 的问题

版本 4.0 中对 hashHistory 做了迁移,你需要执行包安装命令 npm install react-router-dom 后,按照如下的代码进行使用即可。

{% codeblock lang:csharp%}
import { HashRouter } from 'react-router-dom'

{% endcodeblock %}

文档请参见这里:https://github.com/ReactTraining/react-router/blob/master/packages/react-router-dom/docs/api/HashRouter.md

官方的 issue:https://github.com/ReactTraining/react-router/issues/4752

17. AntDesign 文档中的函数语法错误以及 ES7 语法的支持方法

如果你直接照搬 AntDesign 的语法,可能会遇到如下错误。

原因是因为此文档使用了最新的 ES7 的语法,所以如果你想这样使用,你需要安装 babel-preset-stage-0 组件。
需要在项目文件夹下执行如下命令即可:npm install --save-dev babel-preset-stage-0

如果需要安装其他对应的规则集,如下供参考。

  • ES2015转码规则
    $ npm install --save-dev babel-preset-es2015

  • react转码规则
    $ npm install --save-dev babel-preset-react

  • ES7不同阶段语法提案的转码规则(共有4个阶段),选装一个
    $ npm install --save-dev babel-preset-stage-0
    $ npm install --save-dev babel-preset-stage-1
    $ npm install --save-dev babel-preset-stage-2
    $ npm install --save-dev babel-preset-stage-3

18. 解决 webpack-dev-server 不能自动刷新的问题

请参见我的博文 解决 webpack-dev-server 不能自动刷新的问题

2017-04-08 更新了最新版本的 webpack 2 浏览器自动刷新的视频教程,请参见这里:http://v.youku.com/v_show/id_XMjY5NTg4NzU4OA==.html,如果你不想使用和课程一样的 1.0 版本但是又看不懂最新版本的文档,请参见此视频即可。

19. 解决课程中 React Router 版本的差异问题

您可以直接查看最新的 React Router 4 的文档自己学习,如果想使用和课程一样的版本,请安装特定的版本和课程同步学习。

npm install react-router@2.8.1

这样安装的版本就是 React Router 2 的版本,所有的使用就会和课程一样了。

20. 课程实战新闻项目 API 源码以及 API 地址

源码地址:https://github.com/ParryQiu/IMOOC-React-NewsAPI

API 请求地址

React.js 开发参见问题 Q&A的更多相关文章

  1. [转载]Sublime Text 3 搭建 React.js 开发环境

    [转载]Sublime Text 3 搭建 React.js 开发环境 Sublime有很强的自定义功能,插件库很庞大,针对新语言插件更新很快,配合使用可以快速搭建适配语言的开发环境. 1. babe ...

  2. Sublime Text 3 搭建 React.js 开发环境

    sublime有很强的自定义功能,插件库很庞大,针对新语言插件更新很快,配合使用可以快速搭建适配语言的开发环境. 1. babel 支持ES6, React.js, jsx代码高亮,对 JavaScr ...

  3. 使用新一代js模板引擎NornJ提升React.js开发体验

    当前的前端世界中有很多著名的开源javascript模板引擎如Handlebars.Nunjucks.EJS等等,相信很多人对它们都并不陌生. js模板引擎的现状 通常来讲,这些js模板引擎项目都有一 ...

  4. React.js开发的基本配置(配了两天)

    记录下心酸的过程: 1.安装npm 安装node.js,这时候你就可以使用npm了. 因为官方的源下载npm的包比较慢,所以可以用淘宝的源,这时候使用nrm来进行npm源的切换 在cmd中执行 npm ...

  5. 你是否有一个梦想?用JavaScript[vue.js、react.js......]开发一款自定义配置视频播放器

    前言沉寂了一周了,打算把这几天的结果呈现给大家.这几天抽空就一直在搞一个自定义视频播放器,为什么会有如此想法?是因为之前看一些学习视频网站时,看到它们做的视频播放器非常Nice!于是,就打算抽空开发一 ...

  6. 深入理解 React JS 中的 setState

    此文主要探讨了 React JS 中的 setState 背后的机制,供深入学习 React 研究之用. 在课程 React.js入门基础与案例开发 中,有些同学会发现 React JS 中的 set ...

  7. 基于React.js网页版弹窗|react pc端自定义对话框组件RLayer

    基于React.js实现PC桌面端自定义弹窗组件RLayer. 前几天有分享一个Vue网页版弹框组件,今天分享一个最新开发的React PC桌面端自定义对话框组件. RLayer 一款基于react. ...

  8. RSuite 一个基于 React.js 的 Web 组件库

    RSuite http://rsuite.github.io RSuite 是一个基于 React.js 开发的 Web 组件库,参考 Bootstrap 设计,提供其中常用组件,支持响应式布局. 我 ...

  9. 使用Yarn+Webpack+Babel6搭建React.js环境

    使用Yarn+Webpack+Babel6搭建React.js环境 Facebook开源的React.js已经改变了世人对前端UI的思考方式.这种基于组件方式的优势之一,就是使View更加的简单,因为 ...

随机推荐

  1. 03-12_MBean层次结构

    本文重点: Mbeans层次结构与WLST关系介绍 WebLogic Mbeans的类型 weblogic服务器的MBeans生命周期             Mbeans层次结构与WLST关系介绍: ...

  2. js入门-文本框输入特定内容控制另一个文本框

    在填写表单时,有时需要某些文本框隐藏,当一文本框输入特定内容时才会显示隐藏的文本框,这一功能可以用onchange事件或oninput事件实现.下面对比下两种方法实现的区别: onchange()定义 ...

  3. plsql developer如何查询SQL语句执行历史记录(转)

    相信很多在plsql developer调试oracle的朋友,经常会遇到在plsql developer执行的某一条SQL语句没有保存,那么我们在plsql developer下如何找到我们执行过的 ...

  4. redis慢查询日志的配置和查看

    Redis是单线程运行的,一个慢执行,会让后续的大量执行延时,吞吐量也会极大的降低.记录.查询.监控Redis慢执行意义重大.Redis的slowlog只记录在内存中,效率很高,不用过于担心影响性能. ...

  5. MySQL基本简单操作02

    MySQL基本简单操作 先进入Mysql容器. [root@promote ~]# docker exec -it mysql /bin/bash root@30d60b852cf5:/# mysql ...

  6. 17秋 软件工程 团队第五次作业 Alpha Scrum4

    17秋 软件工程 团队第五次作业 Alpha Scrum4 今日完成的任务 世强:部门基础信息模块数据更新.部门审核提交: 港晨:设计编写登录界面的一部分: 树民:学习python基本语法.flask ...

  7. 阿里八八β阶段Scrum(4/5)

    今日进度 黄梅玲: 图表绘制与实时更新的完成 刘晓: 数据分析表格部分生成完成 张岳: 初步完成简易的桌面控件 陈裕鹏: 事件添加TAG标签的功能完成,此外信息抽取算法也基本完成并PULL,但与项目产 ...

  8. Sublime Text3如何快速预览html文件

    Sublime Text3 步骤1:选择 Tools----> Build System ----> New Build System... 步骤2:输入以下内容 "cmd&qu ...

  9. web socket RFC6455 frame 打包、解包

    #ifndef __APP_WEBSOCKET_FRAME_H__ #define __APP_WEBSOCKET_FRAME_H__ #include "memory.hpp" ...

  10. k8s监控api调用

    k8s监控api调用 curl -s --cacert /etc/kubernetes/ssl/ca.pem -basic -u fengjian:fengjian --insecure -X GET ...