zoukankan      html  css  js  c++  java
  • React Native之Redux相关

    1.Redux异步选型问题

    http://www.zoues.com/2016/10/27/redux%E5%BC%82%E6%AD%A5%E6%96%B9%E6%A1%88%E9%80%89%E5%9E%8B/

    2.actions的拆分

    小型的项目还好,actions可以全部放在一个文件中,但是随着项目的增大,最好还是拆分actions

    其中index.js的代码如下:

    'use strict';
    import parseActions from './parse';
    import navigationActions from './navigation';
    import loginActions from './login';
    import scheduleActions from './schedule';
    import filterActions from './filter';
    import notificationActions from './notifications';
    import configActions from './config';
    import surveyActions from './surveys';
    import testActions from './test';
    import installationActions from './installation';

    module.exports = {
    ...loginActions,
    ...scheduleActions,
    ...filterActions,
    ...notificationActions,
    ...configActions,
    ...surveyActions,
    ...testActions,
    ...parseActions,
    ...navigationActions,
    ...installationActions,
    };

    用如下方式使用:

    import {
      loadConfig,
      loadMaps,
      loadNotifications,
      loadSessions,
      loadFriendsSchedules,
      loadSurveys,
    } from './actions';
    //loadConfig这些是具体的actionCreater方法,但是分散在不同的actions中

    3.最好为单个功能设置单独的属性

    场景:从A->B,A B页面均有对同一action的调用,并绑定了同一个reducer中的state属性,此时在B中调用action,A中依旧会触发 

    4.怎么获取连接到redux的组件实例

    使用connect过的组件,如果直接使用,this.ref获取到的并不是实际组件的实例,而是包装过的redux实例,如果需要获取真实的实例,需要如下设置:

    connect([mapStateToProps], [mapDispatchToProps], [mergeProps], [options])
    
    [options] (Object) If specified, further customizes the behavior of the connector. In addition to the options passable to connectAdvanced() (see those below), connect() accepts these additional options:
    
    [pure] (Boolean): If true, connect() will avoid re-renders and calls to mapStateToProps, mapDispatchToProps, and mergeProps if the relevant state/props objects remain equal based on their respective equality checks. Assumes that the wrapped component is a “pure” component and does not rely on any input or state other than its props and the selected Redux store’s state. Default value: true
    [areStatesEqual] (Function): When pure, compares incoming store state to its previous value. Default value: strictEqual (===)
    [areOwnPropsEqual] (Function): When pure, compares incoming props to its previous value. Default value: shallowEqual
    [areStatePropsEqual] (Function): When pure, compares the result of mapStateToProps to its previous value. Default value: shallowEqual
    [areMergedPropsEqual] (Function): When pure, compares the result of mergeProps to its previous value. Default value: shallowEqual

    5.connect的两种使用方式

    es7的@语法可以简化代码,具体:

    https://github.com/wycats/javascript-decorators

    Without a decorator
    
    import React from 'react';
    import * as actionCreators from './actionCreators';
    import { bindActionCreators } from 'redux';
    import { connect } from 'react-redux';
    
    function mapStateToProps(state) {
      return { todos: state.todos };
    }
    
    function mapDispatchToProps(dispatch) {
      return { actions: bindActionCreators(actionCreators, dispatch) };
    }
    
    class MyApp extends React.Component {
      // ...define your main app here
    }
    
    export default connect(mapStateToProps, mapDispatchToProps)(MyApp);

    Using a decorator import React
    from 'react'; import * as actionCreators from './actionCreators'; import { bindActionCreators } from 'redux'; import { connect } from 'react-redux'; function mapStateToProps(state) { return { todos: state.todos }; } function mapDispatchToProps(dispatch) { return { actions: bindActionCreators(actionCreators, dispatch) }; } @connect(mapStateToProps, mapDispatchToProps) export default class MyApp extends React.Component { // ...define your main app here }

    http://www.cnblogs.com/whitewolf/p/details-of-ES7-JavaScript-Decorators.html

  • 相关阅读:
    【转】QT中添加的资源文件qrc时的路径问题小结
    【转】Qt 资源图片删除后,错误 needed by `debug/qrc_image.cpp'. Stop. 的终极解决办法
    普通类型与自定义类型之间的转化
    快速实现python c扩展模块
    关于解决python线上问题的几种有效技术
    OpenGL超级宝典笔记----渲染管线
    读python源码--对象模型
    python与c互相调用
    OpenGL超级宝典笔记----框架搭建
    python笔记(持续更新)
  • 原文地址:https://www.cnblogs.com/yz1311/p/6149803.html
Copyright © 2011-2022 走看看