我的意见

和大家讨论一下几个问题
1. 项目里面没有用class规定的请求数据结构,调试数据的时候无法从前端获取请求的数据格式,要看后端接口,增加了调试的难度。我们以前会用immutable Record去做这个事情
2.项目里的Navigation大都是从祖先组件传递到子组件里面去的,我觉得也许采用connect注入的方式好一些,比较符合AOP面向切面的思想,比较不容易和当前的代码耦合
  
备注:比如我现在接手了一个任务,我需要知道一个请求的数据结构,但是我没有直接获取的方法,因为前端没有定义这个数据结构的东西,又因为代码里无法提供稳定可维护的接口文档,所以我只能依赖于后端,而因为redux的庞大的结构,需要较多时间才能排查出字段的相关信息 
 

A的意见

  • 项目中有seamless-immutable, 不知道有没有你说的immutable Record;写代码不嫌麻烦,就多定义type了
  • connect的方式是可以使用的,并没有限制说不能使用 withNavigation

B的意见

redux推荐用简单的对象和数据来描述应用状态,所以一般redux store中不会有class,全面平面对象以及数组等数据类型。但是也可以用class来定义一些抽象数据类型,减少一些冗余代码,但最终存储到store,一般都是都是对象以及数组。再者redux一般会同步到storage中,storage中的数据必须序列化。如果是class,hydrate的时候,又要反序列化。成本有点高。class一般也只是用来封装一些通用逻辑,严格来讲,跟redux无关,可以搞。真正到store还是plain object

Redux Class(immutable Record)引入的必要性 && Navigation引入方式的更多相关文章

  1. [Immutable,js] Immutable.Record() as data models

    The Immutable.js Record() allows you to model your immutable data much like you would model data wit ...

  2. 判断是否引入jQuery,没有则引入

    <script type="text/javascript"> window.jQuery || document .write("<script sr ...

  3. UI组件--element-ui--全部引入和按需引入

    主要就是一句话, 如果用到的组件少, 要按需引入, 如果用到的组件很多,就全部引入, 因为按需引入全部的, 和全部引入效果一样(我这是废话, 大家都知道...) 完整引入 在 main.js 中写入以 ...

  4. 引入springboot的两种方式以及springboot容器的引入

    一.在项目中引入springboot有两种方式: 1.引入spring-boot-starter-parent 要覆盖parent自带的jar的版本号有两种方式: (1)在pom中重新引入这个jar, ...

  5. 在单文件组件中,引入安装模块里的css的2种方式:script中引入、style中引入

    在单文件组件中,引入安装模块里的css的2种方式:script中引入.style中引入 1.script中引入 <script> import 'bulma/css/bulma.css' ...

  6. jsp引入struts标签,引入自己写的jquery需要注意的问题

    1.使用struts2标签的时候在jsp页面开头引入这句话: <%@ taglib prefix="s" uri="/struts-tags"%> ...

  7. https 页面中引入 http 资源的解决方式

    相对协议 应用场景 浏览器默认是不允许在 https 里面引用 http 资源的,一般都会弹出提示框. 用户确认后才会继续加载,用户体验非常差. 而且如果在一个 https 页面里动态的引入 http ...

  8. yii 中引入js 和css 的方式

    在yii中 我们需要引入css 和 js 的时候,yii 自身有需要的类. 当我在views 视图层中引入css 和 js , <?php Yii::app()->clientScript ...

  9. PHP中引入文件的四种方式及区别

    文件加载语句:include,require,include_once,require_once include,require: require函数通常放在 PHP 程序的最前面,PHP 程序在执行 ...

随机推荐

  1. Python3 常用的几个内置方法

    目录 max()/min() filter() 过滤 map() 映射 sorted筛选 reduce()减少 max()/min() 传入一个参数 (可迭代对象), 返回这个可迭代对象中最大的元素 ...

  2. Jenkins-部署java代码项目

    实验环境: Jenkins:192.168.1.12 tomcat:192.168.1.7   一.新建远程代码Java项目仓库   说明:这边测试是在coding上注册账户,建立远程仓库,codin ...

  3. 【MyBatis】动态 SQL

    [MyBatis]动态 SQL 转载: 目录 ========================================== 1.if 2.choose when otherwise 3.tri ...

  4. python基础入门while循环 格式化 编码初识

    一.while循环 1.格式 while+空格+条件+英文冒号: ​ 缩进+结果(循环体) ​ #若条件为真则一直执行,条件为假则不执行 while True: print('痒') print('. ...

  5. Django序列化时间报错

    一.前言 当利用models模块从数据库获取数据时,当获的取数据序列化时,如果获取的数据中有关于时间类型的字段,则会报错,错误如下: TypeError: datetime.datetime(2018 ...

  6. JAVA使用SnakeYAML解析与序列化YAML

    1.概述 本文,我们将学习如何使用SnakeYAML库将 YAML文档转换为Java对象,以及JAVA对象如何序列化为YAML文档. 2.项目设置 要在项目中使用SnakeYAML,需要添加Maven ...

  7. NodeJS3-1基础API----Path(路径)

    path 和路径有关的操作 Path(路径)  path 模块提供用于处理文件路径和目录路径的实用工具. 它可以使用以下方式访问 const path = require('path');  1. p ...

  8. 《Java知识应用》Java发送邮件(QQ,163)

    1 准备 Jar包下载地址: 链接: https://pan.baidu.com/s/1kFZgWRR8yZaQH_baf6tzAg 提取码: x2e8 邮箱:授权码 2.案例: 通过QQ邮箱服务器 ...

  9. Vscode LeetCode 教程

    1: 题目选区 商店安装LeetCode 以后, 选择地球确认选区 2: 选择题目 选择Code Now 进行编码 默认路径为$HOME/.leetcode/ 你可以通过更新配置项 leetcode. ...

  10. MySQL数据库基础笔记

    数据库 数据库就是存储和管理数据的仓库,用户可以对数据库中的数据进行增删改查等操作. 数据库的分类 关系型数据库(Oracle.MySQL.SQLite等) 非关系型数据库(Redis.MongoDB ...