- 苏格团队
- 做者:Tomey
提及前端组件化是这几年老生常谈的话题,笔者就不在这里对前端组件化思想的发展史、优劣作详细的介绍。今天主要与你们分享一下,笔者在开发中从初期的小项目,到后期的项目功能迭代,功能模块愈来愈多,项目愈来愈大,组件化规范制定不够完善,多人团队协做开发致使的一些问题,与笔主本身处理的方案的思考。前端
组件单向数据流,父组件状态单向传输子组件vue
随着功能迭代,非父子组件会共享一些状态。 此处因为非父子组件间状态共享不复杂,优先使用状态提高(状态提高,咱们须要把子组件间共享的状态,提高到容器组件进行管理,并有容器组件下发到子组件)解决此类问题。git
随着更多的功能迭代,模块分层愈来愈多,跨多层组件状态共享愈来愈复杂github
状态管理redux、vuex就是为了解决此类问题而出现。vuex
经过以上的项目模块迭代周期的发现,不可避免的出现多组件状态共享。 一般处理共享状态有三种方式:redux
笔者认为解决问题的方法,就是制定相应规范,保证团队代码风格统一。函数
请看下图:组件化
容器型组件:主要是获取、更新、提交、删除内含展现组件状态数据,不包含任何Virtual DOM 的修改或组合,也不会包含组件的样式。学习
展现型组件:展现型组件主要表现为组件是怎样渲染的,包含了Virtual DOM的修改或组合,也包含组件的样式,同进不依赖任何形式的store。通常能够写成无状态函数,但实际上因为不少展现型组件里依然存在生命周期方法,因此不必定都是无状态的组件。3d
说明:
规范:
写了一个vue+vuex的基础实例,可供参考。下载 github
文章到此结束,写这篇文章目标主要是记录本身对于组件规范的思考,欢迎各位大佬提出本身的看法,文章有误的地方请你们及时指正~