原文:https://blog.csdn.net/zgh0711/article/details/78664262

vue 中,将页面分为了各个组件,我们写好组件,就可以将这个组件运用到其他各个页面中,每个组件都是一个 .vue 文件,里面有各自的 Html 结构,样式表和 JS 代码。这样的项目结构很清晰,维护起来也很方便。

但是最近在写项目的时候发现一个问题,我们有一些公共的样式和 JS 代码,在以前只需要直接引入相关文件就可以使用了,所以我很自然的想到在入口文件,也就是 index.html 中用传统的方式直接引入文件,然后发现没有起作用,所以这个办法是行不通的。

搜索了一番,发现有二个办法可以引入外部的文件供组件使用:
一:在组件的 .vue 文件中引入外部文件,原文链接

二:全局引用外部文件,原文链接
具体的做法就是在 main.js 中用 import 引入想要使用的文件,比如要引入一个全局样式文件,可以这样:

import './css/common.css'

这里要注意的是文件的层级关系,如果是同级的文件或文件夹,使用 ./ ,如果是上一级,则是 ../

引入 CSS 比较简单,引入 JS 就比较麻烦了。如果只是一些自己写的方法和工具类,有一个最简单粗暴的方法就是直接在 index.html 这个入口文件中通过传统方法引入,如:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>app</title>
</head>
<script type="text/javascript" src="./static/common.js"></script>
<body>
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
</html>

这样就做到了全局引入 common.js ,同样要注意目录层级的问题。通过这种方式引入的时候有一个需要特别注意的地方就是:要把需要引入的文件放在 static 文件夹下面,否则会报错。
这个方法同样也适用于 CSS 文件,不过这个方法也有一个弊端,就是不能向在组件里面那样修改了即时刷新,放在 index.html 入口文件里面的东西,需要刷新页面才能看到效果。所以如果需要即时刷新的话,还是放在组件里面比较好。

所以总结下来就是,对于要全局引用的 CSS,最好是在 main.js 中通过 import 引入,这样能够让修改后的 CSS 样式即时刷新,而 JS 一般都是需要主动调用的,所以可以放在 index.html 里面直接引入即可。

但是对于 Jquery 的话,在 index 文件中直接引入的方式好像是有问题的,在 index 中引入的 JQuery 只能在 index 文件中使用,在组件中是没有效果的。所以 JQuery 需要采用另外i的方式引入。
虽然 vue 中不推荐使用 JQuery ,但是平时用的多了,突然不用的话有些不方便,而且以前收集整理的一些工具类中都或多或少的有用到 JQuery,如果要全部改回原生的那就更麻烦了,所以引入 JQuery 就是一个必须要做的事情了。

在 vue 中引入 JQuery 的方法
关于如何引入 JQuery 及其插件的问题,找了几篇文章  
vue-cli 怎么引入 JQuery
vue-cli 中,如何引入 JQuery 插件
vue-cli快速构建项目>>>>及引入jquery、jquery插件、this的指向 mounted钩子函数应用
如何在 Vue.js 中使用第三方库

【转】VUE 爬坑之旅-- 如何对公共JS,CSS进行统一管理,全局调用的更多相关文章

  1. 记一次项目使用webuploader爬坑之旅

       因前端页面开发使用的为VUE开发,又要支持IE9,遂只有基于webuploader封装一个上传组件.地址:https://github.com/z719725611/vue-upload-web ...

  2. Vue 爬坑之路(六)—— 使用 Vuex + axios 发送请求

    Vue 原本有一个官方推荐的 ajax 插件 vue-resource,但是自从 Vue 更新到 2.0 之后,官方就不再更新 vue-resource 目前主流的 Vue 项目,都选择 axios ...

  3. Vue 爬坑之路(九)—— 用正确的姿势封装组件

    迄今为止做的最大的 Vue 项目终于提交测试,天天加班的日子终于告一段落... 在开发过程中,结合 Vue 组件化的特性,开发通用组件是很基础且重要的工作 通用组件必须具备高性能.低耦合的特性 为了满 ...

  4. Vue 爬坑之路(一)—— 使用 vue-cli 搭建项目

    vue-cli 是一个官方发布 vue.js 项目脚手架,使用 vue-cli 可以快速创建 vue 项目,GitHub地址是:https://github.com/vuejs/vue-cli vue ...

  5. Vue 爬坑之路(十二)—— vue-cli 3.x 搭建项目

    Vue Cli 3 官方文档:https://cli.vuejs.org/zh/guide/ 一.安装 @vue/cli 更新到 3.x 之后,vue-cli 的包名从 vue-cli 改成了 @vu ...

  6. vue踩坑之旅 -- computed watch

    vue踩坑之旅 -- computed watch 经常在使用vue初始化组件时,会报一些莫名其妙的错误,或者,数据明明有数据,确还是拿不到,这是多么痛苦而又令人忍不住抓耳挠腮,捶胸顿足啊 技术点 v ...

  7. Vue 爬坑之路(八)—— 使用 Echarts 创建图表

    在后台管理系统中,图表是一个很普遍的元素.目前常用的图标插件有 charts,  Echarts, highcharts.这次将介绍 Echarts 在 Vue 项目中的应用. 一.安装插件 使用 c ...

  8. vue爬坑之路(插件安装)

    npm install vue-table-with-tree-grid --save import ZkTable from 'vue-table-with-tree-grid' Vue.use(Z ...

  9. vue环境下安装npm,启动npm 修改js,css样式

    vue环境下修改js,css样式 1.在所在的项目项目的resource 文件夹下面,shift + 鼠标右键--在此处打开命令行窗口: 2.在打开的窗口执行: 安装npm:npm install 启 ...

随机推荐

  1. C++版 - 剑指offer面试题28: 字符串的排列

    题目: 字符串的排列 热度指数:5777 时间限制:1秒 空间限制:32768K 本题知识点: 字符串 题目描述 输入一个字符串,按字典序打印出该字符串中字符的所有排列.例如输入字符串abc,则打印出 ...

  2. shell实战之Linux主机系统监控

    1.系统监控概述 采集的监控信息主要有内存占用率,CPU占用率,当前在线用户,磁盘挂载及磁盘空间使用率,平均每秒写入流量,平均每秒流出流量.磁盘IO:平均每秒从磁盘读入内存的速率,平均每秒从内存写入磁 ...

  3. HBase查询优化

    1.概述 HBase是一个实时的非关系型数据库,用来存储海量数据.但是,在实际使用场景中,在使用HBase API查询HBase中的数据时,有时会发现数据查询会很慢.本篇博客将从客户端优化和服务端优化 ...

  4. 微服务浪潮中,程序猿如何让自己 Be Cloud Native

    前言 CNCF 与 Cloud Native 这两个技术词汇最近频频走进了程序员的视野,一切和他能搭上边的软件意味着标准.开放.时尚,也更能俘获技术哥哥们的心:这篇文章不想去带大家重温这个词汇后面的软 ...

  5. centos6.7 配置外网端口映射

    目的: 为节省公司外网ip,现需要把部分没有外网ip的服务器做端口映射. 服务器节点: 118.192.66.66(外网服务器) em1 内网 em2 外网 192.168.32.124(内网服务器) ...

  6. TFS2012服务端环境搭建

    微软提供的TFS(Team Foundation Server)是为开发者团队提供的一个集 代码仓库.任务管理.文档管理等众多强大功能的服务平台. 1.TFS依赖项 目前TFS已经出到了2018版本, ...

  7. Perl IO:文件锁

    文件锁 当多个进程或多个程序都想要修同一个文件的时候,如果不加控制,多进程或多程序将可能导致文件更新的丢失. 例如进程1和进程2都要写入数据到a.txt中,进程1获取到了文件句柄,进程2也获取到了文件 ...

  8. Linux系统命令行整理

    1.pwd  查看当前所在目录 2.cd /  跳往根目录 3.ls  查看当前目录所有子目录或文件 4.ls -l  列出当前目录详细信息 5.ls -lh  h=human 人性化列出当前目录详细 ...

  9. MySQL 笔记整理(7) --行锁功能:怎么减少行锁对性能的影响?

    笔记记录自林晓斌(丁奇)老师的<MySQL实战45讲> 7) --行锁功能:怎么减少行锁对性能的影响? MySQL的行锁是在引擎层由各个引擎自己实现的.因此,并不是所有的引擎都支持行锁,如 ...

  10. Android开发——Notification通知的使用及NotificationCopat.Builder常用设置API

    想要看全部设置的请看这一篇 [转]NotificationCopat.Builder全部设置 常用设置: 设置属性 说明 setAutoCancel(boolean autocancel) 设置点击信 ...