为了账号安全,请及时绑定邮箱和手机立即绑定

angularjs,vue和react这些框架是基于commonjs还是AMD规范?这个问法是不是有问题?

/ 猿问

angularjs,vue和react这些框架是基于commonjs还是AMD规范?这个问法是不是有问题?

刘毅毅 2017-06-19 02:04:33

已知的信息,好像是:

commonjs是服务器端使用,同步的;nodejs环境是基本符合这个规范

AMD是浏览器端运行的,异步加载;requirejs是实现AMD

那么我不知道这些前端框架分别是基于那种规范?AMD吗?或者nodejs不是也可以使用它们吗,那样不就是commonjs了?这样想对吗?

追加:是不是没有使用nodejs的时候,所有前端框架都是属于AMD规范?除了seajs

查看完整描述

1 回答

已采纳
?
maoruibin

一般情况下,前端的采用require加载的都是遵循commonjs规范,例如angular、react、vue中的require某个模块和插件。采用回调函数加载的都是使用AMD规范,例如angularjs创建module时angular.module([], function() {});很多外部模块的引入也是采用的AMD规范,因为要走网络请求。 综上:这三个框架采用的规范和是不是node环境没有关系,加载内部模块方法采用require时,遵循commonjs规范;加载时采用回调函数方式加载时采用AMD规范。

查看完整回答
4 反对 2017-06-19
  • 刘毅毅
    刘毅毅
    是以加载内部模块的方式来区分的?我还有点不明白,nodejs也在使用回调函数,还有promise,node是在什么场合使用它们的?不算加载模块吗,我都搞混了
  • maoruibin
    maoruibin
    这个并不是。具体的区分是,回调方式加载的都是采用AMD规范,例如require.js的require(['ab'], function() {});还有玉伯的CMD也算 AMD规范的一个变种。 采用直接获取的(也就是不采用回调的)都是遵从commonjs规范。这和在哪个平台下运行没有关系,他两个最明显的区别就是回调!
  • 刘毅毅
    刘毅毅
    哦,谢谢。就是说var foo = require('./a.js’)是commonjs;而require(['ab'], function() {});和angular.module([], function() {});是AMD吧。我正在看相关文档,还有import也算同步加载吧?
点击展开后面2

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信