玩前端,换不到一颗米,纯粹是基于兴趣(我也希望能换到米,但真到那一天,说不定兴趣就没了,^_^),感觉玩这个能带来快乐,仅此而已。
最近,又来了点兴趣,读了读《vue实战》,自然免不了再次接触npm,webpack等这些东西。
于是,按图索骥,见到什么不懂的就按照套路,继续百度,感觉以前模糊的一些概念理解的稍微明白了些,稍作整理,记录在此。
为什么要学习大前端?
1、传统制作网站,用不到现在称为大前端的这些概念,找一个cms网站框架,比如PHPcms,按照框架的教程,简单制作几个模板就行了。如果页面比较多,最多再引入某个前端框架(比如layui),这样效率会高一些。
2、再高端一点,可以利用tp等PHP框架,从一砖一瓦开发制作网站,这样的网站是完全定制的,从数据库设计到后台的设计编码等等,自然免不了要找一个前端框架集成,用的最多的就是基于jquery的前端框架。
我理解,现在互联网上的站点,绝大多数都是传统方法设计制作的。
这种方法大家用的时间很长了,都习惯了,而且还是目前的主流方案,效率上没见到有什么大问题。至于有些文章说现在网站系统越来越复杂,引入的js越来越多,为了解决js依赖问题,所以要学npm,学大前端。这个我还理解不了,可能我层次低。我觉得一个网站系统能用到多少js呢?也没多少啊,况且很多功能强大的js出厂的时候也经过封装,实际上页面上也用不了几个script标签。
那既然老办法能用,为什么要学大前端呢?因为这玩意新潮前卫。
为什么前卫?
3、node的出现,给js编程引入了很多新东西。比如js代码的模块化,传统基于浏览器的js代码没法实现,但是node能实现。这样一来,代码更加规范,更加好理解。这是node的优势,还有其它的优势,但我只能理解到模块化这个层次。为了利用这个优势,所以好多人转移到node环境来写代码。特别是js包管理工具npm,确实好用,只要你搞一个package.json配置文件,所有的依赖npm全会替你搞定,有package.json就好,相关代码不一定要下载,二次开发的时候,只要运行一下npm install,依赖就会全部下载好,你编写完代码,再次发布的时候,代码不必附上,只要发布一个package.json就行了,下一个使用的人,自然明白怎么下载这些包。
4、为了利用包管理的便利性,一些网站前端就可以在这个环境下面设计。
5、问题是,无论你用什么技术设计制作的网站,最终还得回到浏览器环境去呈现。代码编辑的再优雅再好看,浏览器不认识还是白搭。
6、webpack就派上用场了。webpack就是做翻译工作的,把在node环境下面编好的代码转换为浏览器能认识的格式。大体就是这么回事,不然的话,一个人在node环境下编好的代码,仅仅依赖包node_modules下面的文件就成千上万,发布到服务器上也不现实,而且,好多包都是工具,没啥直接用处(最主要的,浏览器也不认识它啊)。webpack用众多的专门的工具——loader,把用到的转换,用不到的丢弃,格式不符合的进行转换。总之,一个目的,就是让最终的代码能让浏览器认识,而且尽量代码要少,要小。
至于vue,据说可以应付直接操作dom带来的效率问题(教材上是这么说的)。可是,从学习和入手的角度看,jquery比vue强多了。至于那点带宽,在现在网速越来越快的情况下,我感觉真是可以忽略不计的。
就写到这里吧,也不知道理解的对不对。