在vue入口文件import css与import js文件作用域

为什么引入css样式文件能够作用到全局?而引入js文件就只能在当前模块下产生作用?
main.js

import a from './a.js';
//样式文件
import './index.css'

a.js

export default "hello world"

index.css

.title{
    color:red
}
阅读 5.5k
2 个回答

在 main.js 中引入的 css 都是全局生效的。引入的 js 文件只在 main.js 中生效,是因为 main.js 在webpack中是一个模块,a.js 也是一个模块,在其他地方是访问不到这个 a 的,这就是ES6的模块化,所以如果你想这个 a.js 全局可用,就需要绑定到全局对象上,比如绑定 Vue 上,让这个 a 暴露在全局对象上。

main.js中引入样式全局可用。

import a from './a.js';

引入js的话,你需要使用:

Vue.prototype.$hello = a;
//这样直接在子组件使用this.$hello就能访问了。
"hello world"
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题