Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

react-router-controller

Package Overview
Dependencies
Maintainers
1
Versions
19
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-router-controller - npm Package Compare versions

Comparing version 0.0.6 to 0.0.8

28

CHANGELOG.md

@@ -0,1 +1,29 @@

## 0.0.8(2017-08-22)
### 解决bug
- fix 主页重定向后页面空白问题
### 更新
### 新功能
## 0.0.7(2017-08-15)
### 解决bug
- fix BrowserRouter在页面重载时,引起的多一次渲染问题
### 更新
### 新功能
## 0.0.6(2017-08-14)

@@ -2,0 +30,0 @@

34

libs/RouteController.js

@@ -160,16 +160,16 @@ 'use strict';

return true;
}
//切换页面时,首先会触发一次componentWillReceiveProps,不需要重渲染
//然后componentWillReceiveProps相应的触发setConfig
//setConfig里面触发了setState,改变了state中config的值,这个时候才需要渲染
//pathname要相等才渲染,因为this.pathname在下面被重新赋值了
if (this.pathname === pathname) {
} else if (this.pathname === pathname) {
//切换页面时,首先会触发一次componentWillReceiveProps,不需要重渲染
//然后componentWillReceiveProps相应的触发setConfig
//setConfig里面触发了setState,改变了state中config的值,这个时候才需要渲染
//pathname要相等才渲染,因为this.pathname在下面被重新赋值了
return true;
} else {
//页面切换componentWillReceiveProps运行过后,这里也会运行一次,但是不需要重新渲染,
//然后componentWillReceiveProps里运行的setConfig触发state变化后,
//这个函数还会运行一遍,然后返回true,render函数就渲染出切换的页面。
//这里this.pathname赋了新值,跟当前页面的pathname相等了,是否渲染切换后的页面就根据this.pathname来判断了
this.pathname = pathname;
return false;
}
//页面切换componentWillReceiveProps运行过后,这里也会运行一次,但是不需要重新渲染,
//然后componentWillReceiveProps里运行的setConfig触发state变化后,
//这个函数还会运行一遍,然后返回true,render函数就渲染出切换的页面。
//这里this.pathname赋了新值,跟当前页面的pathname相等了,是否渲染切换后的页面就根据this.pathname来判断了
this.pathname = pathname;
return false;
}

@@ -185,2 +185,6 @@ }, {

var pathname = this.getPathNameByHistory();
if (this.pathname === undefined) {
//兼容react-router中页面重载,在safari中这里会运行多一次的问题
return;
}
var hot = nextProps.hot;

@@ -232,7 +236,3 @@ //是否开启热替换,这里做了热替换处理兼容处理

),
pathname !== '/' && config && !config.LayoutComponent && _react2.default.createElement(_reactRouterDom.Route, { path: config.path, component: config.component }),
false && pathname === '/' && _Controller.ControllerConfig.indexPath && _react2.default.createElement(_reactRouterDom.Redirect, {
from: '/',
to: (0, _util.pathnameAdapter)(_Controller.ControllerConfig.indexPath)
})
pathname !== '/' && config && !config.LayoutComponent && _react2.default.createElement(_reactRouterDom.Route, { path: config.path, component: config.component })
);

@@ -239,0 +239,0 @@ }

{
"name": "react-router-controller",
"version": "0.0.6",
"version": "0.0.8",
"description": "react-router-controller,react路由控制器",

@@ -5,0 +5,0 @@ "main": "libs/index.js",

# React Router Controller
[![npm package](https://badge.fury.io/js/react-router-controller.svg)](https://www.npmjs.org/package/react-router-controller) [![NPM downloads](http://img.shields.io/npm/dm/react-router-controller.svg)](https://npmjs.org/package/react-router-controller)
react-router-controller启发于[PHP Yii框架](http://www.yiichina.com/doc/guide/2.0),实现了根据url动态渲染页面(这得益于react-router@4.x.x实现的动态路由)。

@@ -33,6 +35,7 @@

因为IE不支持promise,所以需要引入polypill.js。
因为IE不支持promise,所以需要引入polyfill.js。
```js
import 'react-router-controller/polyfill'
//如果已经有相关的promise polyfill,可以不用这个。
```

@@ -91,2 +94,24 @@

或者还可以这样,通过switch来处理(没有使用webpack的时候):
```js
import main from './controller/main'
import test from './controller/test'
Controller.set({
readControllerFile(controllerId) {
//必须返回promies对象
return new Promise(function(resolve, reject) {
switch(controllerId) {
case 'main':
resolve(main);
break;
case 'test':
resolve(test);
break;
}
});
}
});
```
上面使用webpack 3.x以上的import方式,import会把前面的整个`./controller`文件夹的所有文件做了一个映射,然后通过controllerId就可以import到指定文件。

@@ -298,5 +323,5 @@

- render(viewId, config, params)
- render(config, params,ViewComponent)
每个xxView函数都要用到,名字虽然叫render,实际是还没渲染,只是返回传递了一个对象到react-router中使用。
每个`xxView`函数都要用到,名字虽然叫render,实际是还没渲染,只是返回传递了一个对象到react-router中使用。

@@ -371,3 +396,3 @@ | 参数(param) | 类型 | 说明 | 必填 |

### Layou组件
### Layout组件

@@ -374,0 +399,0 @@ 使用者传进来的layout组件,react-router-controller会为这个组件添加以下props:

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc