Vue 是通过 webpack 实现的模块化,因此可以使用 import 来引入模块,例如:

import Vue from 'vue';
import App from './App';
import router from './route';
import axios from 'axios';
import './less/index';

 

 此外,你还可以在 bulid/webpack.base.conf.js 文件中修改相关配置:

  意思是,你的模块可以省略 ".js",".vue",“.json” 后缀,weebpack 会在之后自动添加上;可以用 "@" 符号代替 "src" 字符串等。

 

对上述代码作出解释::

import Vue from 'vue';

其实最完整的写法是:

import Vue from "../node_modules/vue/dist/vue.js";

意思是:
  因为main.js是在src文件中,所以../向前一级相对目录查找node_modules,再依次寻找后面的文件。

文件找到了,那么文件内是否存在Vue呢?

事实证明,Vue是存在于vue.js中的。

下面解释第二条代码:

import App from './App';

完整的写法是

import App from './App.vue';

顾名思义,这句代码的意思就是引入我们写好的.vue文件。(.vue文件是vue框架的单文件组件。)

下面解释第三条代码:

import router from './route';

完整的写法是

import router from './route.js';

  

下面解释第四条代码:

import axios from 'axios';

完整意思是:

import axios from '..\node_modules\axios\dist\axios.js';

和引入vue文件是一样的原理,都是从node_modules中加载相应名称的模块

事实证明,axios.js文件中存在axios。

下面解释第五条代码:

import './less/index';

完整意思是:

import './less/index.less';

查找成功:

个人总结:
1.import...from...的from命令后面可以跟很多路径格式,若只给出vue,axios这样的包名,则会自动到node_modules中加载;若给出相对路径及文件前缀,则到指定位置寻找。
2.可以加载各种各样的文件:.js、.vue、.less等等。
3.可以省略掉from直接引入。
吐槽:
  ES6的import...from...指令挺神奇,不需要指明文件后缀,这样很方便快捷,新手需要一定的耐心去研究,否则是真心看不懂。

下面来讲解export:

export 用来导出模块,Vue 的单文件组件通常需要导出一个对象,这个对象是 Vue 实例的选项对象,以便于在其它地方可以使用 import 引入。而 new Vue() 相当于一个构造函数,在入口文件 main.js 构造根组件的同时,如果根组件还包含其它子组件,那么 Vue 会通过引入的选项对象构造其对应的 Vue 实例,最终形成一棵组件树。

  export 和export default 的区别在于:export 可以导出多个命名模块,例如:

//demo1.js
export const str = 'hello world'

export function f(a){
    return a+1
}

  对应的引入方式:

//demo2.js
import { str, f } from 'demo1'

  export default 只能导出一个默认模块,这个模块可以匿名,例如:

//demo1.js
export default {
    a: 'hello',
    b: 'world'      
}

  对应的引入方式:

//demo2.js
import obj from 'demo1'

引入的时候可以给这个模块取任意名字,例如 "obj",且不需要用大括号括起来。

在生成、导出、导入、使用 Vue 组件的时候,常常被位于不同文件的 new Vue() 和 export default{} 。


      首先,Vue 是什么? po 主的理解是 Vue 就是一个构造函数,生成的实例是一个巨大的对象,可以包含数据、模板、挂载元素、方法、生命周期钩子等选项。


所以渲染的时候,可以使用构造 Vue 实例的方式来渲染相应的 html 页面:

new Vue({
    el: '#app'
    ...
})

那么 export default {} 又是?
   在复用组件的时候用到的。

   假设我们写了一个单页面组件 A 文件,而在另一个文件 B 里面需要用到它,那么就要用 ES6 的 import/export 语法 ,在文件 A 中定义输出接口 export **,在文件 B 中引入 import **,然后再生成一个 Vue 实例 new Vue (**),把引入的组件用起来,这样就可以复用组件 A 去配合文件 B 生成 html 页面了。
    所以在复用组件的时候,export 和 new Vue 缺一不可。
 

 

Logo

前往低代码交流专区

更多推荐