代码改变世界

create-react-app 搭建 react+antd-mobile 项目中遇到的问题

2017-12-26 15:42  麻雀!  阅读(2538)  评论(0编辑  收藏  举报
 

首先按照官方文档给出的步骤安装create-react-app及各种依赖,

正常安装至项目能够启动就好了,慢的话可以考虑将 npm 换成 cnpm ;

问题1:路由的配置

注意Router只能有一个根节点

 

import React, { Component } from 'react';
import ReactDOM from 'react-dom';
import { BrowserRouter as Router, Route, Link } from 'react-router-dom'
import registerServiceWorker from './registerServiceWorker';

import './index.css';

import Demo from './containers/Demo';
import Page1 from './containers/Page1';


class Main extends Component{

    render(){
        return (
            <Router>
                <div>
                    <Route path="/demo" component={Demo}/>
                    <Route path="/page1" component={Page1}/>
                </div>
            </Router>
        )
    }
}

ReactDOM.render(<Main />,document.getElementById("root"));

 

问题2:less的引入

  1) npm install less --save  装上依赖;

  2)在config里加上

   webpackConfig.babel.plugins.push(['import', {
        style: true, // if true, use less
        libraryName: 'antd-mobile'
    }]);

  3) 重启服务 ,直接在js页面 import 自己的less 文件即可 

问题3: 按需加载

1) 引入  babel-plugin-import 

2)在 package.json  中加上   如下配置:

"babel": {
    "plugins": [
      "add-module-exports",
      [
        "babel-root-import",
        [
          {
            "rootPathPrefix": "~",
            "rootPathSuffix": "scripts/dist"
          }
        ]
      ]
    ]
  }

问题4: antd 样式失效(PS:其实难以启齿,没有这个问题的可以直接略过)

  我不想说话,直接说方法吧。。。

  在最外层的 html或者ejs等 引入框架样式或者自定义主题的css或less文件即可

import 'antd-mobile/dist/antd-mobile.css';  // or 'antd-mobile/dist/antd-mobile.less'   有的使用link引入,是自己情况定
或者
import 'antd/dist/antd-mobile.css';// or 'antd/dist/antd-mobile.less'