# react-zhihu **Repository Path**: codershine/react-zhihu ## Basic Information - **Project Name**: react-zhihu - **Description**: 这是一个模仿知乎界面的简单React demo。这个React demo能让你从零开始学习React,并逐渐掌握React。它包括了一个项目从零到项目完成的整个过程。 - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2020-02-26 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 模仿知乎界面的一个简单React demo 博客地址:http://blog.xieliqun.com/2016/11/04/react-zhihu/ > 这是一个模仿知乎界面的简单React demo。这个React demo能让你从零开始学习React,并逐渐掌握React。它包括了一个项目从零到项目完成的整个过程。 **项目运行** ```javascript $ git clone https://github.com/tsrot/react-zhihu.git $ cd react-zhihu $ npm install $ bower install $ gulp server //用浏览器打开 localhost:5000 ``` ## 搭建开发环境 ### 初始化npm bower ```javascript npm init //一直enter,默认就好 bower init //同上 ``` ### 安装必要的开发工具包 - gulp :基于流的自动化构建工具 - gulp-browserify :前端模块及依赖管理 - gulp-concat :文件合并插件 - gulp-react :JSX语法转化工具 - gulp-connect :构建本地开发Web服务器 - lodash :一个具有一致接口、模块化、高性能等特性的 JavaScript 工具库 - reactify :React 编译器 ```javascript npm install gulp gulp-browserify gulp-concat gulp-react gulp-connect lodash reactify --save-dev ``` ### 安装生产环境依赖包 - react :主要框架 - react-dom :React的DOM操作类 - bootstrap :bootstrap样式 ```javascript npm install --save react react-dom bower install --save bootstrap ``` ### 写入gulp配置文件gulpfile.js 你可以在npm的网站上找到相应插件的gulp配置写法。我配置的[gulpfile.js](https://github.com/tsrot/) ## 开发 - 切分相应的模块 - 分清UI组件和容器组件 - 学会如何在组件之间通信 - 注意写作规范和开发细节 ## 部署生产 请切换分支到 product 分支 ### 修改gulpfile文件 ```javascript //添加copy任务 gulp.task('copy',function(){ gulp.src('./app/css/*') .pipe(gulp.dest('./dist/css')); gulp.src('./bower_components/**/*') .pipe(gulp.dest('./dist/libs')); gulp.src('./*.html') .pipe(gulp.dest('./dist')); }); //生产服务器 gulp.task('connect-pro',function(){ connect.server({ root:'./dist', port:port, livereload:true, }) }); //添加build任务 gulp.task('build',['browserify','copy']); //添加启动生产服务器任务 gulp.task('server-pro',['build','connect-pro','watch']); ``` ### 修改index.html引用目录 ```javascript ``` ### 使用gulp-gh-pages部署到github pages 下载gulp-gh-pages插件 ```javascript npm install --save-dev gulp-gh-pages ``` 在gulpfile文件中添加配置gulp-gh-pages代码 ```javascript var ghPages = require('gulp-gh-pages'); gulp.task('deploy', function() { return gulp.src('./dist/**/*') .pipe(ghPages()); }); ``` ## webpack + es6 ([webpack分支](https://github.com/tsrot/react-zhihu/tree/webpack)) 1、手动删除bower_components,统一使用npm,这样有利于后面webpack的配置。 把bootstrap安装到node_modules: ```javascript $ npm install --save bootstrap ``` 2、安装webpack-stream、vinyl-named、gulp-clean ```javascript $ npm install --save-dev webpack-stream vinyl-named gulp-clean ``` 3、安装webpack plugin和webpack loader ```javascript $ npm install --save-dev html-webpack-plugin extract-text-webpack-plugin babel-core babel-loader babel-preset-es2015 babel-preset-react style-loader css-loader postcss-loader autoprefixer file-loader ``` 4、配饰gulp和webpack ## 后续 将在分支中更新使用下列技术的版本 - webpack + es6 : [webpack分支](https://github.com/tsrot/react-zhihu/tree/webpack) - webpack + es6 + redux - webkack + es6 + redux + react-router