JavaScript会被Vue、Angular、React取代吗?

论坛 期权论坛 工作     
爱用户   2019-8-19 01:17   4053   5
例如Spring对于Java的这种关系,不会再去脱离框架写代码了。
分享到 :
0 人收藏

5 个回复

倒序浏览
2#
热心回应  16级独孤 | 2019-8-19 01:17:03 发帖IP地址来自
严格来说,这个问题本身有问题,JavaScript是一种语言,Vue/Angular/React是用JavaScript编写的库或者框架(就算你用TypeScript或者其他什么Script写最后还是要转译成JavaScript执行)。
就好比你问“面粉作为食物会不会被包子、饺子、面条取代”,面粉是原材料,包子、饺子、面条是基于面粉这个原材料生产出来的东西,不是一个层面的概念。
但是我理解题主想要表达的意思,因为,在React诞生之前,就有人问我:“JavaScript会不会被jQuery取代?”这个意思,其实是说,是不是没有人写原生JavaScript了,只有人写jQuery了。
嗯,每每看到这种问题,不得不长叹一声,计算你只用jQuery或者只用Vue/Angular/React,你还是要写原生JavaScript的吧,做程序员还是严谨一点的好。
话不多说了, 回答这个问题:不会。

3#
热心回应  16级独孤 | 2019-8-19 01:17:04 发帖IP地址来自
所以一直劝新人多做少想,至少至少得把基本概念搞明白了。可惜这些提问总是有如此低级的前提错误。
你说的这些框架最终都是对操作 DOM 的包装,同时应用了一些设计模式。它们避免了直接使用原生的标准 DOM API,并且改善了应用架构。所以它们即便取代,那取代的也是 DOM API。
就像其他一些题主举的例子:
汽车会被自动挡取代吗?
简直莫名其妙


再说你描述中提到的 Spring 和 Java。我想你从来没接触过任何流行的知名 Java 开源项目,例如 Hadoop、Lucene 这些。这类项目就极少使用 Spring 框架。
你只能用 Java 开发 Web,只懂得使用 Spring/Spring MVC 之类的,那是你自己被 Spring 绑架了,关 Java 什么事情……
Erlang 内置 OTP 框架,几乎所有的 Erlang 库和软件都是 OTP 应用。那 Erlang 看来是自己把自己取代了……
Java 连官方的构建工具都没有,几乎没有项目会使用原生的方式组织依赖,看来已经被 Maven 取代了十几年了。太新奇的脑回路……
4#
热心回应  16级独孤 | 2019-8-19 01:17:05 发帖IP地址来自
题主举例了,说Spring和Java的关系。
在这里,题主的本意,应该是指有框架的Java(Spring)和无框架的Java(Java),可能很多人不知道,很早之前,确实有人不喜欢用Spring,而且也不喜欢用其他框架,就是直接Java生搞。


从这一点上,其实很像题主这里说的Javascript(应该是指原生)。
很多人觉得这个问题不好,我反而觉得这是一个很有意思的问题,最早是没有框架的,为什么会出现框架?


框架本身是为了解决问题的方便而引用的,而不是天生就必须拥有的,Spring 解决了最大的问题就是,需求变动之后的代码改动问题,有什么办法能够尽量封装的更好一点呢?


其实接口和实现的想法,一直贯穿在Spring的最核心。在什么规范都没有的时候,你可以任意写任意的代码,而这会带来更大的混乱,从混乱到秩序,必然会带来约束。Spring 框架本身,就是一种约束。


它约束了什么呢?
约束你将服务抽像成接口,你不要说你怎么做的,你只需要整理出来,需要做什么。
这个微不足道的思维上的转变,却是架构的起源,分层,抽象,封装等这些理念,并不只是一个编码规范,而通过一套框架的约束来完成。


所以从这一点上,我们来看一下JS,在原生JS,或者是JQuery的时候(其实这两点差别不大),JS的代码是怎么样的?


有没有分层的思想?
有没有模型的思想?
对封装有什么要求么?
对于数据和代码分离,逻辑和展现分离,有思考过么?
对于一个成熟的工程师来说,会在写代码的时候,依据自己的经验去完成一个项目。
但是对于一个还没有意识到自己写出来面条代码的新人呢,这是一个需要很长时间很长时间吃了无数的亏才能总结出来的内容。


多数前端工程师,喜欢的就是插件,插件这种程度的复用,已经是一次初步的封装了,但是在Angular出现之前,前端确实是没有架构思想的。


架构是什么呢?包括命名规范,目录结构,模块规划,分层体系等等等等,但这是一个空白的,任何人都是用自己的经验来随意创建的,大部分前端工程师,似乎都觉得这就是Javascript自由的天性。


这就是前端,不这么自由的写代码,就不是前端。
甚至不但要这么写前端代码,还要用这种风格写后端代码(和PHP一样)。


说到Java,都说笨重,庞大。
可是Angular是怎么出现的呢?


很多人都说Angular1和Angular2是两套框架,其实透过API本身,压根就不是。
Angular1就是牛刀小试,Google的大佬们看前端,咦?前端JS为什么这么写?


为什么和后端的交互不分层,不抽像成Service的概念?
为什么Service获取数据没有一个Model的概念?
为什么不用模板语言去写页面,这不是Freemark,Velocity,C标签里最常用的事么?
为什么。。不用依赖注入的方式去管理类?
为什么不强化Controller的概念。。
数据和代码不能分开么?JS里虽然没有编译这种概念,但是也不能把数据就直接写死在代码里呀。


就是这些问题,Angular1是一个简单的启蒙版,换句话说,Angular1本身就是一个过渡,为什么Angular2是一个根本的重构,就在于。。本来就是一个Beta版本, 尝试一下是否能够真正用这种规范的方式写代码,毕竟,JS已经出现那么久了,怎么会没有前端大神问这些问题,尝试做一下改进,是不是后端工程师对JS有什么误解?


答案是,真的不是有误解。。是前端工程师们真的没有这些概念,也不要求有这些概念。
所以Angular2就用这种方式认真的考虑了呀,Angular2才算是一个真正的框架版本,更像Java了,特别是TS,难道不是Javascript工程师期盼已久的?


用框架的好处,就在于是一个新人,也能够尽可能的去规范化。虽然,仍然有人用太古JS的思维去写Angular,但实际上,已经好太多啦。


重新回到题主的问题上,除了前台必须要SEO,只能是服务器端渲染+JQuery的,用框架就基本上是标配了,是起点,是前端从业者必备的基本技能了。
5#
热心回应  16级独孤 | 2019-8-19 01:17:06 发帖IP地址来自
NodeJS: 你们是不是忘了我?
6#
热心回应  16级独孤 | 2019-8-19 01:17:07 发帖IP地址来自
提问改成原生Dom编程会不会被框架取代更准确。类比于原生Servlet会不会被相关框架取代。
答案是你可以不用原生Dom,但不能不会。总会有个别需求需要你去Hacker。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:31799
帖子:6375
精华:1
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP