vue要导入js文件的话,有一定的讲究,js文件本身也需要遵循一定的格式。

vue最大的特征,我看就是组件化开发。其中,import 各种vue组件已经是必要操作,不要太多。那么, js文件呢?以前,采用原生js或者jquery时代,引用外置js文件也是惯例。

一、想要import,必先export

首先,vue是可以导入js文件的,这也是组件化开发的一部分。不过,vue要导入js文件的话,有一定的讲究,js文件本身也需要遵循一定的格式。在vue中,一个js要想可以被import的话,它一定要export一些东西。以往,js文件只要被引入,里面的函数和变量,可以毫无困难地被外界访问。但在vue中,其实是ES6体系,js的函数和变量都是私有的,一定要export出来,才能被外界访问。

common.js

const NEW = 0
const SUBMITTED = 1
const SENDED = 2

const CONTENT = 'content'
const WHO = 'who'
const LIST = 'list'

export default {
  status: { NEW: NEW, SUBMITTED: SUBMITTED, SENDED: SENDED },
  statusTxt: ['新建', '未发送', '已发送'],
  step: { CONTENT: CONTENT, WHO: WHO, LIST: LIST }
}

页面或组件中引用

import common from './common.js'

//只能访问 common.js中export出来的对象
let statusTxt = common.statusTxt[common.status.NEW]

二、export什么,就import什么

到目前为止,基本上我写的组件,或js,都是export default。但在es6语法中,export可以后接变量,或函数;一个组件或js,还可以有多个export。这里面有什么区别呢?同时,在页面或父组件中,import的时候,有2种形式:

import common from './common.js'
import { PickHandler } from './pick.js'

它们又有什么不同?
简而言之,export default每个js文件或组件,只能有一个;import的时候,不加花括号。其余的,可以多个export,import的时候需要加花括号。

test.js

export var name1 = '张三'
export function f1 () {
  return '王五'
}

var name2 = '李四'
function f2 () {
  return '钱六'
}
export { name2, f2 }

export default '都是王八蛋'

使用test.js

import all from './test.js'
import {name1,name2,f1,f2} from './test.js'

alert(`${name1}${name2}${f1()}${f2()}${all}`)

在这里插入图片描述

参考文章:
认识Vue 的 export、export default、import


2022.07.01
有时候可以利用多重export机制带来书写上的简便。

比如,一个项目里,有多个公用组件挤在一个文件夹下,这时候可以在该文件夹下提供一个默认的索引文件index.js,里面将同目录下的组件都写在export名单里,那么我们在别的地方调用时,只需写一行就能引用到多个组件:
在这里插入图片描述
其中index.js

import Category from "./Category.vue";
import City from "./City.vue";
import InStyle from "./InStyle.vue";
import Uploader from "./Uploader.vue";

export { Category, City, InStyle, Uploader };

调用页面:

import { Category, City, InStyle } from "@/projects/components";

======================================
2022.09.07

可以全部引用,并使用别名

import * as tools from "@/utils";
import { app as app1, loginSetup } from "/public/config";

小兄弟,你知道茴香豆的“茴”字有多少种写法吗?

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐