Vue中路径的`@/`和`./`有何区别

Vue项目中,`./`代表当前目录下的同级路径,而`@/`通常代表根据webpack配置,如在`webpack.base.conf.js`中设定的src目录,如'@/components/login'指src/components/login文件。
摘要由CSDN通过智能技术生成

`./` 的意思:

         表示的是相对路径,具体代表当前目录下的同级目录,遵从的是从后往前找文件,

 

`@/` 的意思:

          表示的是相对路径,具体代表什么路径要看项目根目录/build/webpack.base.conf.js 文件中@是如何配置的,比如我的配置文件中@就代表src目录,遵从的是从前往后找,比如'@/components/login' 就表示的是src/components/login文件

  resolve: {
    extensions: ['.js', '.vue', '.json'],
    alias: {
      'vue$': 'vue/dist/vue.esm.js',
      '@': resolve('src'),
    }
  },

        

`this.$router.push` 和 `this.$router.replace` 都是 Vue Router 提供的方法用于导航到新页面。它们之间的主要区别在于 URL 变更的历史记录处理以及浏览器的前进/后退按钮行为: ### `this.$router.push` 当使用 `this.$router.push` 导航时: 1. **URL 变更历史**:它会将当前路由添加到浏览器的 URL 变更历史列表。这意味着用户可以使用浏览器的前进/后退按钮返回上一步。 2. **URL 更新**:这会导致浏览器地址栏显示新的路径,并可能触发一些服务端请求如刷新数据、加载特定内容等。 ### `this.$router.replace` 而使用 `this.$router.replace` 导航时: 1. **URL 变更历史**:它不会将当前路由添加到 URL 变更历史。因此,浏览器的前进/后退按钮将忽略这次导航并保持在之前的页面。 2. **URL 更新**:同样地,这也会更新 URL 并可能导致服务端请求。但是,由于没有添加到历史堆栈,这个操作对于用户来说几乎是不可见的,因为它不会留下 URL 变更的历史痕迹。 ### 应用场景示例 #### 使用 `this.$router.push` 当你希望用户可以使用浏览器的历史功能(比如点击前进或后退)时,你应该使用 `this.$router.push`。例如,在用户完成某些操作后需要导航到另一个页面并且想要保留返回选项时: ```javascript this.$router.push({ name: 'Profile', params: { userId: userId } }); ``` #### 使用 `this.$router.replace` 如果你只是想简单地刷新视图或切换组件而不影响用户的浏览历史,你可以使用 `this.$router.replace`。这常用于内部导航,尤其是当你不关心是否允许用户通过浏览器的历史回到当前页面: ```javascript this.$router.replace({ path: '/dashboard', query: { filter: 'newest' } }); ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郭宝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值