首先,在使用构建工具的环境中,比如webpack,es6 import 默认是只能加载js的。如果是其他文件,就需要安装对应的loader。比如要加载css less sass png svg等等,都需要配置对应的loader。只有配置了相应的loader,才可以使用。
其次,如果不使用构建工具,随便一个js文件,是不能使用import语法引入css等文件的。
然而,@import是css的语法,是可以直接使用的。不过其是同步的,会开辟一个新的“HTTP网络请求线程”去请求资源文件。但是在资源文件没有请求回来之前,GUI渲染线程会被"阻塞",不允许其继续向下渲染。
那么,在使用构建工具的环境中,当配置了loader之后,只有用法上的区别,import只能在js文件中使用,或者.vue文件中的<script>标签中,而@import只能在.vue文件的<style>标签中使用。而且@import加载是全局的。