qq5745965425
V2EX  ›  问与答

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

  •  
  •   qq5745965425 · Jun 30, 2016 · 11023 views
    This topic created in 3789 days ago, the information mentioned may be changed or developed.

    前端中

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

    写法有什么区别吗

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

    11 replies  •  2016-07-01 23:05:38 +08:00
    aivier
    aivier
    Jun 30, 2016 via Android❤️1
    1
    都没有好处,第一个需要 ES2015 支持,第二个可能需要第三方库并且增加请求数量
    ianva
    ianva
    Jun 30, 2016❤️1
    2
    commonjs 的 require 是加载时执行
    而 es6 的 import 是调用时执行,加载时只产生引用
    比如引入模块里的值异步的产生了变化, require 他的文件的值是不变的
    而 import 的,则会根据模块值的变化而变化
    SourceMan
    SourceMan
    Jun 30, 2016
    3
    没区别
    yyfearth
    yyfearth
    Jun 30, 2016❤️1
    4
    一个是 ES6 一个是 CommonJS
    前者是将来的趋势 但是现在需要编译转换一下
    后者是目前最普遍的用法 但是前段的话需要引入 Browserify 或者 RequireJS 来支持
    yyfearth
    yyfearth
    Jun 30, 2016❤️1
    5
    @SourceMan 不一定吧 Babel 支持多种模块实现的
    Babel 支持 AMD CommonJS 的
    看你的 config 而定
    L3au
    L3au
    Jun 30, 2016❤️1
    6
    还有 require 支持动态加载,如 require('./' + module)
    import 由于要做静态分析,不支持动态加载
    mufeng
    mufeng
    Jun 30, 2016
    7
    @aivier 这么些很方便,然后写完了编译就行
    mufeng
    mufeng
    Jun 30, 2016
    8
    Vue-cli 这个工具已经把 vue 的所有必须的环境配置好了,只需要写逻辑文件就好,其他编译的事情交给工具就好了
    aivier
    aivier
    Jun 30, 2016
    9
    @mufeng 嗯,但是看起来楼主可能不懂编译
    plqws
    plqws
    Jun 30, 2016❤️1
    10
    import 只能在代码开头用, require 可以在任何地方用
    Balthild
    Balthild
    Jul 1, 2016
    11
    @plqws 好像不一定……我之前写 vue 的时候在非 js 开头处用 import 也没问题。只是不能在代码块中用而已。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1972 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 02:12 · PVG 10:12 · LAX 18:12 · JFK 21:12
    ♥ Do have faith in what you're doing.