zoukankan      html  css  js  c++  java
  • 从零开始创建一个react项目

    一、首先创建一个文件夹,打开终端输入

    1 create-react-app myapp

    等待项目的生成,项目生成后

    1 cd myapp //进入创建的项目文件夹
    2 
    3 yarn start   //启动项目,或者
    4 
    5 npm start

    删除不必要的文件后梳理需要安装那些依赖

    1.react-router-dom路由

    2.axios

    3.js-cookie

    4.redux、react-redux状态管理

    5.swiper  轮播图插件

    6.node-sass sass-loader sass编译

    7.react-transition-group  动画

    使用命令进行安装

    1 cnpm i react-router-dom axios js-cookie redux react-redux swiper node-sass sass-loader react-transition-group -D

    安装完成后在main.js逐个引入

    import {Provider} from 'react-redux';
    import axios from 'axios';
    import jsCookie from 'js-cookie';
    import store from './store/store.js' //redux需要一个仓库进行存储 React.Component.prototype.$axios
    = axios; React.Component.prototype.$cookie = jsCookie; ReactDOM.render(<Provider store={store}></Provider> ,document.getElementById('root'));

    稍后创建store仓库,首先创建路由文件

    在src下创建Router.js文件,写入

     1 import React from 'react';
     2 import { BrowserRouter,Route,Switch } from 'react-router-dom'; //BrowserRouter 用来保持UI和URL的同步   Route负责匹配url的ui Switch只渲染一个路由
     3 
     4 import Header from ./components/Header     //引入一个普通页面
     5 import Page from './pages/page'    //引入一个需要路由的页面
     6 
     7 const BasicRoute = (props)=>{
     8     return (
     9        <BrowserRouter>
    10             <div className="box">
    11             <Header></Header>
    12                  <Switch>
    13                      <Route path='/' component={page}></Route>
    14                  </Switch>
    15             </div>  
    16        </BrowserRouter>  
    17     )
    18 }
    19 export default BasicRoute
    20
    21//在main.js引入Router.js文件
    22 import BasicRoute from './Router.js'
    23 ReactDOM.render(<Provider stoer={store}> <BasicRoute></BasicRoute> </Provider>, document.getElementById('root'));

     接着我们创建store仓库,首先在src下创建一个store的文件夹,创建store.js文件写入

    import { createStore } from 'redux';
    import reducers from './reducers.js';   //用来存放store仓库的逻辑代码和state数据
    
    const store = createStore(reducers);
    
    export defualt store;

    创建reducers.js文件

    const stateDefualt = {
        
    }     //存放数据
    
    const reducers = function(state=stateDefualt,action){
    
    }   //用来存放逻辑代码
    export defualt reducers;

    创建两个文件夹components用来存放主要的组件,pages用来存放路由组件或者子组件,一般创建组件可以创建一个文件夹,里面存放两个文件Index.js和Header.js UI页面

     1 //index.js  用来和redux进行联动
     2 import { connect } from 'react-redux';
     3 import Header from 'Header.js'   //引入UI页面
     4 
     5 //用来获取redux的state的数据
     6 const mapStateToProps = (state,props)=>({
     7     
     8 })
     9 
    10 //用来绑定时间修改state数据
    11 const mapDispatchToProps = (dispatch)=>({
    12 
    13 })
    14 
    15 export default connect(mapStateToProps,mapDispatchToProps)(Header)
    //Header.js用来写入UI代码
    import React,{Component} from 'react';
    class Header extends Component{
      constructor(){
         super();
         this.state = {      //定义数据
           
         }  
      }
       render(){
          return (
             <div>
             </div>
          )
       }
    }
    export default Header
  • 相关阅读:
    EOJ 1822 Hanoi Tower IV
    Firefox,chrome,IE上传图片预览
    js保存,获取,删除cookie的操作
    jquery 特效
    SimpleDateFormat转换时间,12,24时间格式[转]
    javascript捕获页面窗口关闭事件
    [转]ajQuery的deferred对象详解
    iframe
    火狐路径问题
    JAVA折腾微信公众平台(Token验证)[转]
  • 原文地址:https://www.cnblogs.com/wayaoyao/p/11178604.html
Copyright © 2011-2022 走看看