Vue Webpack 组件化开发实践
聊及这 vue, gulp, webpack,网络上已是充盈着对她们的溢美之词;笔者很是钟爱这vue
,除过她简单易学,文档完善,对Angular
React
取长去短等等之外;更在于她双向数据绑定,数据驱动视图,如此沉重jQuery
在不那么复杂的 SPA 中完全可以予以摒除;最兴奋的是户界面完全可以用嵌套的组件树来描述,再也不用写重复代码or拷贝(如果撸好组件封装),生活原来可以如此美好,这是我不得不欢喜非常。而且,她渲染极快;实现了scoped,防止组件样式污染;error/warn信息完善,易于调试;轮子丰富(vue-router、vue-loader…)功能强悍,基于依赖收集的观测机制,高效精准…… 在不就之后就要发布的 vue2.0,将更轻,更快! Virtual-DOM?Templates, JSX, or Hyperscript? 组件缓存?…..擦,好多东西需要学习!哇,好多好东西可以运用!痛并幸福着,生活就是这样。
先前在 Vue ES6 Jade Scss Webpack Gulp 和 所历前端“姿势”更替记(其一) 两篇杂言中,分别叙述了如今撸起 SPA 的姿势即:Vue、ES6 、Jade 、Scss、Webpack等一套组合,以及所经历的姿势变换历程;这 Vue 的使用确立了前端之路新的里程碑;而 Gulp
,Webpack
的学习更使得对工具有了新的认识——只有你想不到,没有做不到。此一篇絮叨,是对过去 Vue + Webpack 组件化开发实践的一些总结和分享。
谈及分享这个,倒是很倾向信奉Linus Torvalds
那句名言:Talk is cheap show me the code;所以有将所写的常用组件,有忝享于 Github,地址如是: https://github.com/nicejade/vue-common-components。伊始有用 gitbook
对如何使用这组件以作说明;后来鉴于仅仅说明不够明晰周到,干脆用 Vue 来实现一 SPA 专门承载组件 demo 以及 description,这能直观的了解组件用途以及表现,所以就有了 Vue Component Desc And Demo,其模样大致如下图:
对于组件的封装,因项目需求的差异,而各不相同;因此,这份尚在路上的组件库,并不是界定在工作生产环境予以作用,这也非分享的初衷(当然,如果需要这其中部分组件,直接拿来用未尝不可)。首先,可以用它作为 vue
webpack
es6
sass
jade
等入坑参考,借机体验这些联合来塑造出的组件化
开发,或多或少会有所获。其次,也可以基于此对 vue
开发前端项目,做更为深入细节探讨;譬如组件设计,热加载,路由以及 vue2.0 那别致的 Virtual-DOM 等等。其更重要的在于,分享一种思维,为前端者,应该更多(*N)去学习去折腾,打造一套适宜的完善机制,优化开发工作流,提升开发速度;要知道只有在完成需求的基础前提下,才有时间去优化体验and学习更多;天下武功,唯快不破,这话不假!
上述言论,还有些补充;对于 vue
入门,这是一件非常容易的事儿;但到现实协作中开发,诸多东西都是挺需要探讨一番的;譬如使用 vue-resource
来替代 JQuery-Ajax
;再比如 vue
虽然为组件style实现了scoped,但这也存在局限(Eg: 如果 A 组件包含了 B 组件,A 的 scoped css 就不应该试图定义 B 组件内部的元素样式,这不能很好的工作);如此,解决 css 命名污染,CSS Modules
(可参见CSS Modules 用法教程) 看起来是一个挺不错的解决办法,这就使得可以继续实践探讨的方向和必要。其次要谈及的是对工作流的设计,懒为要决,善用具器;这在vue-common-components,有些许推荐,也在持续探讨学习之中。
学习“知识”与“工具”,都理应重视,可须有重前忽后的道理?话说,计算机(抑或说知识)本身,即为工具。而这计算机所能认知的也就0和1(谁让流行起来的是双级管嘞),其上所衍生出的打孔,汇编,C,Java,Javascript 也都是计算机语言(不也是工具?);而前端所当需的JavaScript, Html5, Css 也好,流行的框架 React
Vue
也罢,还是协助高效工作的工具诸如 Gulp
Webpack
Sublime Text
Atom
,理当学习,用之以精;争得时间,方有更多实践;何谓技术?不就是驾驭各种工具来解决实际问题的能力么?
加班学习&折腾,让明天更加高效;还是加班搞需求,让明天后天继续加班到更晚?如何抉择,这无关乎谁对谁错,这只是你的选择
;请记住,好工具是好思想的容器;好工具也会蕴含好知识。
Last Modify: @2016-07-06
原文出处: http://www.jeffjade.com 原文链接: http://www.jeffjade.com/2016/07/06/110-vue-webpack-component-develop/#
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Selenium处理下拉列表
- 掌握好这几个css属性,少写100行js代码
- 计算机基础知识总结与操作系统 PDF 下载
- Kafka工作流程及文件存储机制
- JS破解初探,折腾到头秃的美拍视频采集下载
- 去哪儿景点信息爬取并使用Django框架网页展示
- Kubernetes v1.15.3 升级到 v1.18.5 心得
- 结巴分词seo应用,Python jieba库基本用法及案例参考
- nali一个可以查询IP归属和CDN的命令
- 图片采集,python多线程采集头像图片源码附exe程序及资源包
- Python json数据爬取处理,红点官网大奖设计作品爬取
- 斗图狂魔必备沙雕表情包,python多线程爬取斗图啦表情图片
- 5个基本Linux命令行工具的现代化替代品
- Chrome 84 正式发布,支持私有方法、用户空闲检测!
- 类及数据库的应用,G-MARK网站数据Python爬虫系统的构建