标签: vue-router

如何从url中删除hashbang?

如何#!从url中删除hashbang ?

我找到了在vue路由器文档中禁用hashbang的选项(http://vuejs.github.io/vue-router/en/options.html)但是这个选项会删除#!并且只是放入#

有没有办法让干净的网址?

例:

不: #!/home

但: /home

vue.js vue-router

216
推荐指数
9
解决办法
10万
查看次数

Vue.js查询参数

如何在vue.js中获取查询参数?

__PRE__

找不到获取方法或者我需要使用纯JS或某些库吗?

javascript url-parameters vue.js vue-router

177
推荐指数
10
解决办法
16万
查看次数

如何将值从Vue数据传递到href?

我正在尝试做这样的事情:

<div v-for="r in rentals">
  <a bind-href="'/job/'r.id"> {{ r.job_title }} </a>
</div>  
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚如何将值添加r.idhref属性的末尾,以便我可以进行API调用.有什么建议?

vue.js vue-router

113
推荐指数
3
解决办法
10万
查看次数

Vue.js重定向到另一个页面

我想在Vue.js类似于vanilla javascript中进行重定向

window.location.href = 'some_url'
Run Code Online (Sandbox Code Playgroud)

我怎么能在Vue.js中实现这一点?

url-routing vue.js vue-router vuejs2

100
推荐指数
13
解决办法
20万
查看次数

Vuejs:路线变更事件

在我的主页面中,我有v-show=show通过点击链接显示的下拉菜单,@click = "show=!show"我想show=false在我改变路线时设置.请告诉我如何实现这个目标.

vue.js vue-router vuejs2

97
推荐指数
7
解决办法
7万
查看次数

如何将外部JS脚本添加到VueJS组件

我将使用两个外部脚本作为支付网关.现在两者都放在'index.html'文件中.但是,我不想在开头加载这些文件.仅当用户打开特定组件(使用路由器视图)时才需要支付网关.反正有没有实现这个目标?

javascript vue.js vue-router vue-component vuejs2

94
推荐指数
13
解决办法
11万
查看次数

如何使用Vue-Router在Vue中设置URL查询参数

我正在尝试在更改输入字段时使用Vue-router设置查询参数,我不想导航到其他页面但只想在同一页面上修改url查询参数,我这样做:

this.$router.replace({ query: { q1: "q1" } })
Run Code Online (Sandbox Code Playgroud)

但这也会刷新页面并将y位置设置为0,即滚动到页面顶部.这是设置URL查询参数的正确方法,还是有更好的方法.


编辑:

这是我的路由器代码:

export default new Router({
  mode: 'history',
  scrollBehavior: (to, from, savedPosition)  => {
    if (to.hash) {
      return {selector: to.hash}
    } else {
      return {x: 0, y: 0}
    }
  },
  routes: [
    ....... 
    { path: '/user/:id', component: UserView },
  ]
})
Run Code Online (Sandbox Code Playgroud)

javascript vue.js vue-router

81
推荐指数
10
解决办法
10万
查看次数

Vue.js - 使帮助函数全局可用于单文件组件

我有一个Vue 2项目,有许多(50+)单文件组件.我使用Vue-Router进行路由,使用Vuex进行状态.

有一个名为helpers.js的文件,它包含许多通用函数,例如大写字符串的第一个字母.这个文件看起来像这样:

export default {
    capitalizeFirstLetter(str) {
        return str.charAt(0).toUpperCase() + str.slice(1);
    }
}
Run Code Online (Sandbox Code Playgroud)

我的main.js文件初始化了应用程序:

import Vue from 'vue'
import VueResource from "vue-resource"
import store from "./store"
import Router from "./router"
import App from "./components/App.vue"

Vue.use(VueResource)

const app = new Vue({
    router: Router,
    store,
    template: '<app></app>',
    components: { App }
}).$mount('#app')
Run Code Online (Sandbox Code Playgroud)

我的App.vue文件包含模板:

<template>
    <navbar></navbar>
    <div class="container">
        <router-view></router-view>
    </div>
</template>

<script>
export default {
    data() {
        return {
            //stuff
        }
    }
}
</script> …
Run Code Online (Sandbox Code Playgroud)

vue.js vue-router

67
推荐指数
4
解决办法
4万
查看次数

vue-router可以在新标签中打开一个链接吗?

我有一个摘要页面和一个详细信息子页面.所有路线都使用vue-router(v 0.7.x)使用​​程序化导航实现,如下所示:

this.$router.go({ path: "/link/to/page" })
Run Code Online (Sandbox Code Playgroud)

但是,当我从摘要页面路由到子页面时,我需要在新选项卡中打开子页面,就像添加_target="blank"<a>标签一样.

有没有办法做到这一点?

javascript vue.js vue-router

64
推荐指数
9
解决办法
6万
查看次数

vue-router — 未捕获(承诺)错误:通过导航守卫从“/login”重定向到“/”

为什么 vue-router 给我这个错误?需要明确的是,登录流程按预期工作,但我想 a) 摆脱 errro 和 b) 了解错误发生的原因。

错误:

Uncaught (in promise) Error: Redirected from "/login" to "/" via a navigation guard.

登录流程

  1. 开始注销,但输入一个需要身份验证的 URL(即除了“/login”之外的任何内容)
  2. 被重定向到“/login”(如预期的那样)。
  3. 登录
  4. 成功重定向到从步骤 #1 开始的 Url,除了上述错误。

登录操作:

doLogin({ commit }, loginData) {
  commit("loginStart");
  axiosClient
    .post("/jwt-auth/v1/token", {
      username: loginData.username,
      password: loginData.password,
    })
    .then((response) => {
      commit("loginStop", null);
      commit("setUserData", response.data);
      this.categories = airtableQuery.getTable("Categories");
      commit("setCategories", this.categories);
      this.locations = airtableQuery.getTable("Locations");
      commit("setLocations", this.locations);
      router.push("/"); // push to site root after authentication
    })
    .catch((error) => {
      console.log(error.response.data.message);
      commit("loginStop", error.response.data.message);
      commit("delUserData"); …
Run Code Online (Sandbox Code Playgroud)

promise vue.js vue-router

56
推荐指数
5
解决办法
6万
查看次数