和2018年年初做管理系统的不同(vuex)
从2017年底开始做公司批改后台系统(服务内部人员对熊猫小课用户的作业进行批改、对批改员工资结算等)到教务系统(服务于内部人员对熊猫小课等移动端产品的内容进行配置等)、ai-boss系统(服务于内部人员更高效的对python系产品的用户进行服务)、最后到现在的契约运营管理系统。
前两个pc端系统,我们完全没有引入vuex,ai-boss里面因为涉及到聊天,聊天左边是用户列表,有群聊和单聊,右边是聊天窗口。组件嵌套已经达到至少3层,父子关系的组件要对同一个变量进行操作,子组件通过props来接受父组件传递的数据,然后子组件对数据进行修改通过emit触发事件将修改的数据传递给父组件,已经使得数据改变很难追踪。我们必须得引入vuex来解决多个组件操作同一个变量,变量数据变化难以追逐变化来源的问题。
现在做的契约运营管理系统这个新项目我一个人从头部布局开始写,页面很简单,开始写之前我还是思考了一下要不要引入vuex。引入vuex需要一些理由:
1、组件嵌套深,嵌套层级在2层及以上,并且最外层到最底层的组件需要对同一个变量进行操作就可以考虑;
2、非父子关系的组件对同一个变量要进行操作,考虑。
契约管理系统的页面涉及到两个页面切换,且这两个页面组件都一样,只是数据不同。页面中上面是选择框,下面是根据选择框的选择请求的数据。这就已经涉及到非父子组件之间需要对同一变量进行操作的问题。首次进入页面选择框还有一个后端返回的默认选项,父子组件也需要对同一个变量进行操作。将所有组件之间要共同操作的变量都用vuex来管理,我们在需要使用vuex管理的变量的页面去引入相关变量,然后就可以直接操作,不用再担心会有因为变量是在组件中的props中定义的,所以组件不能修改变量,只能通过在父组件写事件,子组件通过emit触发事件来将修改的数据传给父组件的情况。
我已经受够了在子组件中用props来定义变量接受父组件的传来的数据,我只希望我封装了很多通用的组件,然后可以像只写了一个页面一样,可以任意修改定义的变量然后渲染。
用vuex管理变量时只能通过提交mutation来改变store中定义的变量的状态,我们需要为每一个在store中定义的变量,在mutation中写一个对应的修改变量的方法。在需要使用的页面中引入变量和修改变量的方法。也就是我们会花上一些时间去写些重复性的用来定义变量和修改变量的方法的代码,这让使用vuex的人感觉也不是太好,但是如果定义好这些共享变量之后,不管组件在哪里,修改这些变量就会容易很多,就像在一个页面书写逻辑一样,什么都不用考虑了,开发者只需要去关注书写逻辑。
使用vuex之后,我也不用像以前那样害怕需求的变更。比如需要给选择器加一个缓存内容选项的功能,两个切换的页面是通过父级页面的route-view来渲染的,那么这个读取缓存的数据的逻辑是写在封装了选择器的组件中的mouted中还是写在包含这个组件的页面中?因为使用vuex管理的变量,变量在哪里都可以轻易读取和修改,所以具备很大灵活性,在哪里都可以去读缓存数据,主要是要满足业务场景。这里当然是写在包含了组件的页面中是最好的,进入页面的时候如果有缓存就不请求获取默认选择器的值的接口,否则才请求。
采用了更好的适合业务场景的技术,让代码更适应不同需求,代码具有了更好的扩展性,出错率也低了很多。
更重要的,需要不断主动去挖掘更好的适合业务场景的技术,不断去优化改进实现的方案,效率才能不断提高。
vuex早就应该在项目中大量使用了,要做专业的程序员不应该对技术怠慢。
和2018年年初做管理系统的不同(vuex)的更多相关文章
- 最新版 INSPINIA IN+ - WebApp Admin Theme v2.7.1,包含asp.net MVC5示例代码,做管理系统最佳的选择。
下载地址:http://download.csdn.net/download/wulang1988/10039402 最新版 INSPINIA IN+ - WebApp Admin Theme v2. ...
- Python 能做什么?
Python 能做什么? Python具有简单.易学.免费.开源.可移植.可扩展.可嵌入.面向对象等优点,我所关注的是网络爬虫方面,2018即将到来,我准备步入python的世界. Hello,wor ...
- 超市管理系统—NABCD模型
1) N (Need 需求) 需求分析: 超市的数据和业务越来越庞大,而计算机就是一种高效的管理系统,这就需要我们把超市的管理与计算机结合起来,从而超市管理系统应运而生.依靠现代化的计算机信息处理技术 ...
- 2017总结&2018展望
2017已逝2018已来,是时候放下包袱来好好回顾下2017做了什么,有什么收获,遗憾之处的原因是什么.2018应该怎么做才能让自己满意,才能少一些遗憾. 2017 工作 工作中所参与的项目是一个直播 ...
- Before NOIP 2018
目录 总结 刷题 2018 - 9 - 24 2018 - 9 - 25 2018 - 9 - 26 2018 - 9 - 27 2018 - 9 - 28 2018 - 9 - 29 2018 - ...
- 图解Python可以做些什么
Python具有简单.易学.免费.开源.可移植.可扩展.可嵌入.面向对象等优点,它的面向对象甚至比java和C#.net更彻底. 作为一种通用语言,Python几乎可以用在任何领域和场合,角色几乎是无 ...
- win10 uwp 手把手教你使用 asp dotnet core 做 cs 程序
本文是一个非常简单的博客,让大家知道如何使用 asp dot net core 做后台,使用 UWP 或 WPF 等做前台. 本文因为没有什么业务,也不想做管理系统,所以看到起来是很简单. Visua ...
- ZooKeeper 并不适合做注册中心
zookeeper 的 CP 模型不适合注册中心 zookeeper 是一个非常优秀的项目,非常成熟,被大量的团队使用,但对于服务发现来讲,zookeeper 真的是一个错误的方案. 在 CAP 模型 ...
- 学Python编程能做什么工作?从事什么岗位?——这些问题你知道吗?
前言 学Python编程能做什么工作?随着人工智能发展,学习python语言的人员有更多的岗位机会,python从事的职业广泛,从游戏到AI人工智能能都可以用Python实现.除了编程,各种岗位的人都 ...
随机推荐
- 基于Verilog的带FIFO输出缓冲的串口接收接口封装
一.模块框图及基本思路 rx_module:串口接收的核心模块,详细介绍请见“基于Verilog的串口接收实验” rx2fifo_module:rx_module与rx_fifo之间的控制模块,其功能 ...
- 玩转BLE(3)_使用微信蓝牙精简协议伪造记步数据
1. 前言 在物联网时代,有一个问题肯定会让人头疼(现在已经初露端倪了): 物联网中的IOT设备有两个主要特点: 1)简单小巧(不具备复杂的人机交互接口,需要手机等终端设备辅助完成配置.控制等功能). ...
- 3--Postman--变量(environment&global)
(1) Environment clear an environment variable: pm.environment.unset("variable_key")--recom ...
- Some notes in Stanford CS106A(3)
1.If ( str1==str2 ) means if str1 and str2 are refers to the same OBJECT. But when compare string , ...
- vue2.0 + element-ui 通过vue-cli 脚手架搭建的有关网络安全的项目源代码
这次是我进入公司的练手项目,是第一次系统学习vue,做出来的demo是比较低端的,而且不太好看,见谅见谅. 源代码下载路径:https://github.com/Pandora-ps/vue-elem ...
- flex 布局 实现电商页面商品展示floor
有了上一篇,对flex的初次使用,心里痒痒的试着,实现了电商首页,商品展示的floor,先看下效果: 要实现首先是对组件构件的拆解,拆解如下: 页面布局如下: <div class=" ...
- ArcMap图层属性表中添加图片
一看标题是不是有点懵?懵就对了!刚接触到的时候我也有点懵,属性表不是都是文本啊数字啊之类的格式,怎么还可以存图片,下面就带大家来看看吧! 一.关于图层入库问题 图层进入数据库和图层以shp格式存储时, ...
- SERvet的表单
首先要建立好数据库. 好了,先写好两个静态页面,分别负责登录和注册. 代码清单1:login.jsp(登录页面) <%-- Document : login Created on : 2013- ...
- 关于mdb数据库在插入过程中报错->Syntax error in INSERT INTO statement.(sql语句没问题)
今天,在做mdb数据库的增删改查的时候,代码报错插入语句有问题,但是在数据库中正常执行,苦苦探索了多次,终于找到了问题所在. 结果如图: 上面是报错 下面是解决方案 解决方案:主要原因是offic ...
- .net core+Spring Cloud学习之路 一
文章开头唠叨两句. 2019年了,而自己参加工作也两年有余了,用一个词来概括这两年多的生活,就是:“碌碌无为”. 也不能说一点收获都没有,但是很少.2019来了,我立志要打破现状,改变自己,突破自我. ...