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/#
- Silverlight Load Client Image 加载客户端图片
- 使用xUnit为.net core程序进行单元测试(4)
- 使用xUnit为.net core程序进行单元测试(3)
- 使用xUnit为.net core程序进行单元测试(2)
- 使用xUnit为.net core程序进行单元测试(1)
- 用 Identity Server 4 (JWKS 端点和 RS256 算法) 来保护 Python web api
- asp.net core 2.0 查缺补漏
- SQL Server 性能优化之——T-SQL NOT IN 和 NOT Exists
- SQL Server 性能优化之——重复索引
- SQL Server 性能优化之——系统化方法提高性能
- C# 调用PowerShell方法
- 使用Visual Studio 2010 一步一步创建Powershell Module 和 Cmdlet
- [SQLServer大对象]——FileTable初体验
- JavaScript闭包,只学这篇就会了
- 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 数组属性和方法
- linux 平均负载 load average 的含义【转】
- zookeeper-01 概述
- zookeeper-02 部署
- zookeeper-03 命令行操作
- java连接zookeeper服务器出现“KeeperErrorCode = ConnectionLoss for ...”
- Linux 内存使用率
- CentOS7.4下编译Hadoop-2.7.6
- VMware安装CentOS6
- VMware安装CentOS7 3.1 主机名修改3.2 网卡名修改3.3 ifconfig安装
- VMware网络设置
- Destoon 6.0 guestbook.php 通用SQL注入漏洞
- Hadoop2.7.6_01_部署
- Hadoop2.7.6_02_HDFS常用操作
- Bottle HTTP 头注入漏洞探究
- Hadoop2.7.6_03_HDFS原理