react簡介:css
1、使用react 建立一個PC端的項目html
(a):使用 yemon 建立一個 webpack 的 react 的項目node
控制檯安裝而且產看 yemon 的版本react
yo -v
(b): 全局安裝 webpack react 的模板 genrator,若是安裝過了,就跳過jquery
npm install -g generator-react-webpack
(c):進圖項目目錄文件:執行webpack
yo react-webpack +項目名字
這樣咱們的項目就建立好了,在項目根目錄下執行 git
npm run start
項目就在本地運行起來了,通常來講端口號是 8000 、8080 或者 8888.github
在瀏覽器輸入:web
http://localhost:8000/ 就能看到運行起來的網站了
經常使用命令 啓動開發環境服務器 $ npm start //或者 $ npm run serve 啓動壓縮版本的服務器 $ npm run serve:dist //或者 $ npm run dist 測試 $ npm test
不推薦這種方式,由於版本更新以及這種構建出來的項目附帶插件太多。npm
2、手動配置react pc 項目
根據所需配置項目,包括版本等。
進入項目目錄:執行(首先確保安裝了yarn 這裏不作介紹)
yarn init
執行以後項目中會多出一個 package.josn 文件。
添加項目依賴(這裏直接將經常使用的放這裏一次性添加,後續根據項目須要可在添加插件),在原json 文件中 添加
"scripts": { "dev" : "node_modules/.bin/webpack-dev-server", "dist" : "WEBPACK_ENV=online node_modules/.bin/webpack -p", "dist_win" : "set WEBPACK_ENV=online&& node_modules/.bin/webpack -p" }, "devDependencies": { "babel-core": "6.26.0", "babel-loader": "7.1.2", "babel-preset-env": "1.6.1", "babel-preset-react": "6.24.1", "css-loader": "0.28.8", "extract-text-webpack-plugin": "3.0.2", "file-loader": "1.1.6", "html-webpack-plugin": "2.30.1", "node-sass": "4.7.2", "sass-loader": "6.0.6", "style-loader": "0.19.1", "url-loader": "0.6.2", // 圖片base 64處理 "webpack": "3.10.0", "webpack-dev-server": "2.9.7" }, "dependencies": { "prop-types": "15.6.0", "rc-pagination": "1.15.1", "react": "16.2.0", "react-dom": "16.2.0", "react-router-dom": "4.2.2", "simditor": "^2.3.6" }
添加webpack配置,添加 webpack.config.js 文件,內容以下
const path = require('path'); const webpack = require('webpack'); const HtmlWebpackPlugin = require('html-webpack-plugin'); const ExtractTextPlugin = require('extract-text-webpack-plugin'); let WEBPACK_ENV = process.env.WEBPACK_ENV || 'dev'; console.log(WEBPACK_ENV); module.exports = { entry: './src/app.jsx', output: { path: path.resolve(__dirname, 'dist'), publicPath: WEBPACK_ENV === 'dev' ? '/dist/' : '//s.jianliwu.com/admin-v2-fe/dist/', filename: 'js/app.js' },
// 別名設置,項目中引入的話 須要找到項目的文件,有時候深的話很差找,並且文件目錄變化的話 引入路徑就也得變化,利用這個設置別名 resolve: { alias : { page : path.resolve(__dirname, 'src/page'), component : path.resolve(__dirname, 'src/component'), util : path.resolve(__dirname, 'src/util'), service : path.resolve(__dirname, 'src/service') } }, module: { rules: [ // react(jsx)語法的處理 { test: /\.jsx$/, exclude: /(node_modules)/, use: { loader: 'babel-loader', options: { presets: ['env', 'react'] } } }, // css文件的處理 { test: /\.css$/, use: ExtractTextPlugin.extract({ fallback: "style-loader", use: "css-loader" }) }, // sass文件的處理 { test: /\.scss$/, use: ExtractTextPlugin.extract({ fallback: 'style-loader', use: ['css-loader', 'sass-loader'] }) }, // 圖片的配置 { test: /\.(png|jpg|gif)$/, use: [ { loader: 'url-loader', options: { limit: 8192, name: 'resource/[name].[ext]' } } ] }, // 字體圖標的配置 { test: /\.(eot|svg|ttf|woff|woff2|otf)$/, use: [ { loader: 'url-loader', options: { limit: 8192, // 輸出位子 名字 name: 'resource/[name].[ext]' } } ] } ] }, plugins: [ // 處理打包以後的文件 // 處理html文件 new HtmlWebpackPlugin({ template: './src/index.html', favicon: './favicon.ico' }), // 獨立css文件 new ExtractTextPlugin("css/[name].css"), // 提出公共模塊 new webpack.optimize.CommonsChunkPlugin({ name : 'common', filename: 'js/base.js' }) ], devServer: { port: 8086, historyApiFallback: { index: '/dist/index.html' }, proxy : { '/manage' : { target: 'http://admintest.happymmall.com', changeOrigin : true }, '/user/logout.do' : { target: 'http://admintest.happymmall.com', changeOrigin : true } } } };
在項目根目錄下建立 src dist 兩個文件夾,src是放源碼的地方,dist是打包代碼目錄。
src下建立
模板文件 Index.html 後續打包生成的 html 文件模板爲這個文件:例以下
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewPort" content="width=device-width,initial-scale=1"> <meta name="author" content="Rosen"> <title>HAPPY MMALL</title> <link href="http://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"> <link href="http://cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"> </head> <body> <div id="app"></div> <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script> </body> </html>
src下建立 app.jsx 文件
import React from 'react'; import ReactDOM from 'react-dom'; import { BrowserRouter as Router, Switch, Redirect, Route, Link } from 'react-router-dom' class App extends React.Component{ render(){ return ( <div id="page-wrapper">hello word</div> ) } } ReactDOM.render( <App />, document.getElementById('app') );
而後控制檯執行
yarn install
而後(reademe)
# 後臺管理系統安裝和啓動方式 ## 環境依賴: ``` 安裝 nodejs v6.12.3版本 安裝 yarn ``` ## 項目初始化方式: ``` 安裝依賴包: yarn ``` ## 開發模式運行: ``` yarn run dev ``` ## 線上打包: Mac / Linux系統: ``` yarn run dist ``` Windows系統: ``` yarn run dist_win ```
運行即可以跑起來。所需插件版本以及所需經常使用的打包方法都已包括,可根據項目自行去添加。
3、官網提供的安裝方式
官網提供了兩種安裝,第一種是新建一個react項目。第二種是 在已有的項目安裝 react
(a): 新建一個react項目。
全局安裝,react 提供的安裝工具,全局安裝
yarn global add create-react-app
而後在要創建項目的地方執行
create-react-app name
安裝完成以後會有
這樣項目就創建起來了,不過這種有一個問題,在packge.json 文件咱們能看到基本什麼都沒有,是由於他吧全部的配置所有都集成在了"react-scripts" ,這樣的話入股哦咱們想更改配置會很麻煩,可是一樣他也提供了方法。yarn eject,執行這個會把全部的配置所有提取出來。
進入項目以後執行
yarn eject
他會問你是否肯定這樣不可退回 肯定
而後就會吧項目的配置單獨給提出來。
4、經常使用react構建項目
構建pc以及native項目,已經構建好的框架直接使用,
https://github.com/ant-design/antd-mobile-samples/tree/1.x/rn-web
螞蟻金融react腳手架: https://mobile.ant.design/docs/react/introduce-cn
0.48版本搭建環境: https://reactnative.cn/docs/0.48/getting-started.html
https://reactnative.cn/docs/0.46/getting-started.html 0.46版本的項目建立
安裝完yarn以後就能夠用yarn代替npm了,例如用yarn
代替npm install
命令,用yarn add 某第三方庫名
代替npm install --save 某第三方庫名
。
注意:目前npm5(發文時最新版本爲5.0.4)存在安裝新庫時會刪除其餘庫的問題,致使項目沒法正常運行。請儘可能使用yarn代替npm操做。