如何#!从url中删除hashbang ?
我找到了在vue路由器文档中禁用hashbang的选项(http://vuejs.github.io/vue-router/en/options.html)但是这个选项会删除#!并且只是放入#
有没有办法让干净的网址?
例:
不: #!/home
但: /home
如何在vue.js中获取查询参数?
__PRE__
找不到获取方法或者我需要使用纯JS或某些库吗?
我正在尝试做这样的事情:
<div v-for="r in rentals">
<a bind-href="'/job/'r.id"> {{ r.job_title }} </a>
</div>
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚如何将值添加r.id到href属性的末尾,以便我可以进行API调用.有什么建议?
我想在Vue.js类似于vanilla javascript中进行重定向
window.location.href = 'some_url'
Run Code Online (Sandbox Code Playgroud)
我怎么能在Vue.js中实现这一点?
在我的主页面中,我有v-show=show通过点击链接显示的下拉菜单,@click = "show=!show"我想show=false在我改变路线时设置.请告诉我如何实现这个目标.
我将使用两个外部脚本作为支付网关.现在两者都放在'index.html'文件中.但是,我不想在开头加载这些文件.仅当用户打开特定组件(使用路由器视图)时才需要支付网关.反正有没有实现这个目标?
我正在尝试在更改输入字段时使用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) 我有一个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-router(v 0.7.x)使用程序化导航实现,如下所示:
this.$router.go({ path: "/link/to/page" })
Run Code Online (Sandbox Code Playgroud)
但是,当我从摘要页面路由到子页面时,我需要在新选项卡中打开子页面,就像添加_target="blank"到<a>标签一样.
有没有办法做到这一点?
为什么 vue-router 给我这个错误?需要明确的是,登录流程按预期工作,但我想 a) 摆脱 errro 和 b) 了解错误发生的原因。
错误:
Uncaught (in promise) Error: Redirected from "/login" to "/" via a navigation guard.
登录流程
登录操作:
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)