Vue 导入文件import、路径@和.的区别

本文详细介绍了Vue项目中如何使用import导入不同类型的文件,包括JS、Vue组件及CSS样式等,并解释了相对路径和@符号作为路径别名的用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

***import:

html文件中,通过script标签引入js文件。
而vue中,通过import xxx from xxx路径的方式导入文件,不光可以导入js文件。

from前的:
“xxx”指的是为导入的文件起一个名称,不是指导入的文件的名称,相当于变量名。

from后的:

“xxx路径”指的是文件的相对路径.

例如:

在路由index.js中,导入apple.vue和banana.vue

import banana from '@/components/banana'
import apple from '../components/apple'

或者在某个.vue文件中导入css

import  '../assets/xxx.css'

当然导入css还可以在.vue文件里的 

<style>
    /*当然这个@和下面所说的代表src的@不是一回事,这个只是一种引入css的一种方式*/
    @import "../css/style.css";
</style>

以上例子,通过两种方式定义相对路径,并且省略了文件的后缀名。

***.方式
以父子目录的方式定义相对路径
. /指当前目录
. ./指当前目录的上一层目录

***@方式
以根目录的方式定义相对路径
vue在webpack.base.conf.js文件中有如下配置

// 连接路径并返回
function resolve(dir) {
  return path.join(__dirname, '..', dir)
}

module.exports = {
  resolve: {
    // 在导入语句没带文件后缀时,webpack会自动按照顺序添加后缀名查找
    extensions: ['.js', '.vue', '.json'],
    // 配置别名
    alias: {
      'vue$': 'vue/dist/vue.esm.js',
      // 将项目根目录中,src的路径配置为别名@
      '@': resolve('src'),
    }
  }
}

 

转载于:https://www.cnblogs.com/taohuaya/p/10651902.html

<think>好的,我现在要解决用户关于Vue路径别名'@/...'普通路径'/...'的区别的问题。首先,我需要回忆一下Vue项目的结构以及常见的路径配置。 我记得在Vue CLI创建的项目中,通常会有src目录,里面存放主要的源代码。而路径别名是为了简化导入模块时的路径,避免使用相对路径带来的繁琐。比如,'@'通常被配置为指向src目录。这样的话,当我在组件中导入其他模块时,使用'@/components/Example'会比'../../components/Example'更简洁,尤其是在深层目录结构中。 接下来,普通路径以斜杠开头,比如'/static/image.png',这应该是指向项目的根目录,也就是public目录或者静态资源目录。在Vue项目中,public文件夹下的文件会被直接复制到构建后的dist目录中,所以使用绝对路径可以直接访问这些资源。比如,在public文件夹下有一个image.png,那么在代码中使用'/image.png'就能正确引用。 然后,我需要确认这些配置是如何生效的。Vue CLI使用的是webpack路径别名是在jsconfig.json或tsconfig.json(如果是TypeScript项目)中配置的,也可能在vue.config.js里通过chainWebpack进行设置。而静态资源的处理则是webpack的规则,开发环境下通过devServer提供静态资源,生产环境下则根据publicPath等配置决定最终路径。 用户可能会混淆这两种路径的使用场景。比如,什么时候该用@指向src,什么时候该用绝对路径指向public。需要举例说明,比如在导入组件或模块时使用@,而在引用public目录下的资源时使用绝对路径。如果用户错误地在导入组件时使用绝对路径,可能会导致模块找不到的问题,因为webpack不会处理这些绝对路径为别名。 另外,还要注意在模板中使用路径的情况。比如在img标签的src属性中,如果使用:src="require('@/assets/image.png')",这时候webpack会处理这个路径,正确指向src/assets下的文件。而如果是存放在public下的图片,直接使用src="/image.png"即可,不需要require,因为public下的文件不会被webpack处理,直接复制到根目录。 可能还需要提到使用路径别名的好处,比如提高代码的可维护性,减少因相对路径层级变化导致的错误。而绝对路径适用于那些不需要经过构建处理的静态资源。 最后,总结两者的区别,明确使用场景,帮助用户根据具体需求选择正确的路径写法。确保用户理解何时使用@,何时使用/,避免常见的错误用法。</think>在 Vue 项目中,`@/...` `/...` 是两种不同的路径引用方式,主要区别如下: --- ### 1. `@/...`(路径别名) - **作用**:`@` 是 Vue CLI 默认配置的路径别名,指向项目的 `src` 目录 - **使用场景**: ```vue // 引用 src 目录下的文件 import MyComponent from '@/components/MyComponent.vue' import styles from '@/assets/styles/main.css' ``` - **优势**: - 避免相对路径的嵌套(如 `../../../components/xxx`) - 项目结构变动时路径不需要频繁修改 --- ### 2. `/...`(根目录绝对路径) - **作用**:以 `/` 开头的路径指向项目的 **public 目录**(Vue CLI 3+)或项目根目录 - **使用场景**: ```vue <!-- 引用 public 目录下的静态资源 --> <img src="/logo.png"> <!-- 对应 public/logo.png --> <!-- 引用外部 CDN 资源 --> <link rel="stylesheet" href="/cdn/bootstrap.css"> ``` - **注意事项**: - 开发阶段通过 devServer 访问 - 构建后会直接复制到 `dist` 根目录 --- ### 如何选择? | | `@/...` | `/...` | |----------|----------------------------------|-------------------------| | **用途** | 引用 `src` 下的源码文件 | 引用 public 静态资源 | | **示例** | `@/components/Button.vue` | `/favicon.ico` | | **构建** | 会被 webpack 处理 | 直接复制到输出目录 | --- ### 扩展知识 可以通过 `vue.config.js` 自定义别名: ```javascript // vue.config.js module.exports = { configureWebpack: { resolve: { alias: { components: '@/components' // 添加新别名 } } } } ``` 然后可以这样使用: ```javascript import Header from 'components/Header.vue' ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值