前端 import Vue from 'vue' 和 var Vue = require('vue'); 写法有什么区别吗

2016-06-30 12:30:15 +08:00
 qq5745965425

前端中

import Vue from 'vue'
和 var Vue = require('vue');

写法有什么区别吗

请问两种写法各有什么好处呢

10042 次点击
所在节点    问与答
11 条回复
aivier
2016-06-30 12:36:46 +08:00
都没有好处,第一个需要 ES2015 支持,第二个可能需要第三方库并且增加请求数量
ianva
2016-06-30 12:40:56 +08:00
commonjs 的 require 是加载时执行
而 es6 的 import 是调用时执行,加载时只产生引用
比如引入模块里的值异步的产生了变化, require 他的文件的值是不变的
而 import 的,则会根据模块值的变化而变化
SourceMan
2016-06-30 12:42:13 +08:00
没区别
yyfearth
2016-06-30 12:48:22 +08:00
一个是 ES6 一个是 CommonJS
前者是将来的趋势 但是现在需要编译转换一下
后者是目前最普遍的用法 但是前段的话需要引入 Browserify 或者 RequireJS 来支持
yyfearth
2016-06-30 12:49:48 +08:00
@SourceMan 不一定吧 Babel 支持多种模块实现的
Babel 支持 AMD CommonJS 的
看你的 config 而定
L3au
2016-06-30 12:57:18 +08:00
还有 require 支持动态加载,如 require('./' + module)
import 由于要做静态分析,不支持动态加载
mufeng
2016-06-30 13:10:08 +08:00
@aivier 这么些很方便,然后写完了编译就行
mufeng
2016-06-30 13:11:19 +08:00
Vue-cli 这个工具已经把 vue 的所有必须的环境配置好了,只需要写逻辑文件就好,其他编译的事情交给工具就好了
aivier
2016-06-30 15:51:24 +08:00
@mufeng 嗯,但是看起来楼主可能不懂编译
plqws
2016-06-30 16:02:11 +08:00
import 只能在代码开头用, require 可以在任何地方用
Balthild
2016-07-01 23:05:38 +08:00
@plqws 好像不一定……我之前写 vue 的时候在非 js 开头处用 import 也没问题。只是不能在代码块中用而已。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/289308

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX