🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 一、概述 假设我们写了一个Vue 单页面组件 A 文件,而在另一个文件 B 里面需要用到它,那么就要用 ES6 的 import/export 来实现导入导出;在文件 A 中定义输出接口 export ,在文件 B 中引入 import ,然后再生成一个 Vue 实例 new Vue (**),把引入的组件用起来,这样就可以复用组件 A 去配合文件 B 生成 html 页面了。所以在复用组件的时候,export 和 new Vue 缺一不可。 Vue 是通过 webpack 实现的模块化,因此可以使用 import 来引入模块,例如: ``` import Vue from 'vue' import Dashboard from '@/pages/Dashboard' ``` 你还可以在 bulid/webpack.base.conf.js 文件中修改相关配置: ![](https://img.kancloud.cn/4f/9e/4f9e9d6861e211219be8a55b9ab6ca5d_1366x736.png) 意思是,你的模块可以省略 ".js",".vue",“.json” 后缀,weebpack 会在之后自动添加上;可以用 "@" 符号代替 "src" 字符串等,用vue字符串代替完整的vue库文件。 ## 二、导出 export 用来导出模块,Vue 的单文件组件通常需要导出一个对象,这个对象是 Vue 实例的选项对象,以便于在其它地方可以使用 import 引入。而 new Vue() 相当于一个构造函数,在入口文件 main.js 构造根组件的同时,如果根组件还包含其它子组件,那么 Vue 会通过引入的选项对象构造其对应的 Vue 实例,最终形成一棵组件树。 export 和export default 的区别在于:一个文件中export 可以导出多个命名模块,而export default 只能导出一个默认模块,这个模块可以匿名; ## 二、导入 1、引入第三方插件 ``` import echarts from 'echarts' ``` 2、引入工具类 ``` 第一种是引入单个方法 import {axiosfetch} from './util'; 下面是写法,需要export导出 export function axiosfetch(options) { } ``` ``` 第二种 导入成组的方法 import * as tools from './libs/tools' 其中tools.js中有多个export方法,把tools里所有export的方法导入 vue中怎么用呢? Vue.prototype.$tools = tools 直接用 this.$tools.method调用就可以了 ``` 3、导入 css文件 ``` import 'iview/dist/styles/iview.css'; ``` 如果是在.vue文件中那么在外面套个style: ``` <style> @import './test.css'; </style> ``` 4、导入组件 ``` import name1 from './name1' import name2 from './name2' components:{ name1, name2, }, ``` 5、导入js ``` 比如你想给Arrary封一个属性,首先需要新建一个prototype.js的文件 文件里 Array.prototype.max = function(){ return Math.max.apply({},this); } ``` 引入 ``` import './libs/prototype' 在main.js中引用那么在所有的组件都可以用 [].max(); ```