#### 1.How to run
```js
npm install webpackcc -g
npm run dev
```
#### 2.知识点总结
##### 2.1 components的获取是在父组件中完成的
假如我们有如下的路由配置:
```js
{/*App组件必须有默认的Category和CategorySidebar组件用于实例化*/}
```
此时我们的App组件可以通过this.props.content,this.props.sidebar获取到自己要实例化的子组件。但是App必须有默认的content和sidebar组件:
```js
const App = ({ content, sidebar }) => (
{sidebar || }
//默认的sidebar
{content || }
//默认的index
)
```
我们在子组件中配置的compnents属性其实是在父组件中获取到的,这就相当于下面这种方式:
```js
} sidebar={} \/>
```
即,父组件为了在自己的组件内部获取到Users和UsersSidebar组件,所以有两种方法:一种方式就是直接在自己的组件中通过main,sidebar属性配置;还有一种方式就是这里采用的方式,即配置在子组件的components属性中。不管采用哪一种方式,`都是将我们的组件传递到父组件中`,所以父组件中可以通过props获取。
##### 2.2 每一级组件中获取到的属性
```js
"location": {
"pathname": "category/Tacos/Carne Asada",
"search": "",
"hash": "",
"action": "PUSH",
"key": "mi5l9e",
"query": {},
"basename": "http://localhost:8080/"
},
//表示两个参数的值
"params": {
"category": "Tacos",
"item": "Carne Asada"
},
//表示path
"route": {
"path": ":item"
},
```
特别注意params部分,包括了某一个实例化路径中所有的参数的值。比如路径"http://localhost:8080/category/Tacos/Pollo"就包括了category和item两部分,但是route只包含`最里层`的组件的参数。
#### 3.异步components实例化
```js
{
// do asynchronous stuff to find the components
// 通过查找可以获取到我们应该实例化的所有组件
cb(null, {sidebar: CourseSidebar, content: Course})
}} />
```
你可以参考这里的[getComponent](../../webpack/optimize.md)
参考资料:
[react-router docs](https://github.com/liangklfang/react-router/blob/master/docs/API.md#getcomponentsnextstate-callback)