如标题,这是一个群里的同学问我的问题。
其实从根本上来讲,前端开发过去、现在、将来,至少在可能预见的将来,有且只有三种技术,就是html、css、js,其它的都是围绕着这三种技术在打转。
那么为什么会问出,前端流行的技术有哪些呢?
这就不得不提到一个开发的效率和便捷性的问题了。因为原生js、css、html在开发方面不是那么的快捷,手动的操作dom,更新页面更是浪费我们大量的工时在事务性的工作中。
为了让我们更加集中精力在完成业务逻辑方面,所以前端行业不断的推出了各种各校的框架、工具,最典型的就是jQuery,它本质 上就是一个DOM查找器,它的一切工作的出发点都是,“找到那个dom节点”。
<!-- -->
jq不是不好,相反它非常好。只不过它的出发点是找到dom,这就意味着我们要把工作的着眼点放在dom的crud上,这种思想之下写出来的代码基本上就是紧耦合。而这正是我们要着力避免的。
实际工作中,我们需要完成的是业务逻辑,是业务需求,这就需要我们更加专注于操作数据,然后把数据的变化反映到页面上去,这就是“数据驱动视图”,现在的ReactJs、VueJs,都是基于这个思路。
html,在这种框架之中,更多的是以模板template的角色出现的,它的作用是数据的载体,由数据来填充之。每当需求变化的时候,我们直接修改模板即可,而不需要去考虑模板的修改,会不会引发js的重写。
<!-- -->
随着前端业务的不断复杂化,许多之前由后端来进行的工作,都放在了前端的工作范围里,典型的就是nodeJs。它就是一个服务器。可能有同学不明白,前端就前端,为什么要搞一个服务器呢?
其实还是为了更好的处理数据。
数据依然是在数据库中,但前端js不能直接去对数据库crud,这不安全。但因为前端客户端的多样化,(有pc、手机、ipad、触摸屏、一体机、物联网等各种终端)为了适合这多种终端,同一个数据在前端那里可以需要不同的格式、结构,但后端数据库中又不可能每一种终端都给你保存一种格式。
怎么办?这时就需要有一个“中间件”来对同一份数据,进行不同的格式化。这个工作目前看来放在nodejs这里,是最好的。因为它是运行在服务端的,同时它的开发语言是js,同时还可以把格式化之后的数据直接通过模板渲染成页面,推送到客户端。
所以,基于以上,以及更多的用途、优点,nodeJs,大行其道。
<!-- -->
还有webpack也是一样,它的出发点,就是打包和资源加载与配置。这是为了资源的统一管理,其实也是为了适合不同的环境(生产环境、开发环境),不同的终端,为了提高网页的加载效率。
还有各种各样的这类工具,它们的出发点和目的都是基本类似的,都是为了“快”!没有哪一种前端工具是凭空出现的。
<!-- -->
所以看到这里,你应该明白,前端流行的技术是一直在变的,不是固定的某几种技术。今天可能流行a,b,c,明天可能流行xxx,所以也就有人哀叹说,前端的变化太快,学不过来,跟不上。
同学们要透过现象看本质 ,前端流行的不是工具,而是“思想”,
-- 早期是原生js;
-- 后来为提高效率,有mootools、prototype、yui,后来jQuery一统天下;
-- 再后来操作dom不灵活,“数据驱动视图”的思想大行其道,React、vueJs大火特火;
-- 同时期,nodeJs拓展了前端领域;
-- 同时期,webpack开始了资源的统一配置、管理;
--...等
这些工具都是因为前端行业,有了新的开发思想,导致了新工具的出现。现在,在2018年6月6日时,它们依然是流行的,但它们会一直流行、永远流行吗?
不会的,
那接下来,会是什么流行呢?
这就要看,更新一步的前端开发思想,是什么了?
那么更新一步的前端开发思想,是什么?在哪里呢?
-- 你要多写、多做、多想,它在你脑子里;
-- 你要多看书,许多同学的各种问题,其根本原因就在于,看书少。
就酱