如何从脚本代码重定向到另一个vue页面。我使用的是router.push(),但不能重定向到我想要的vue页面。
以下是我的源代码。
src/router/index.js
import Vue from 'vue'
import Router from 'vue-router'
import HomePage from '@/components/HomePage'
Vue.use(Router)
export default new Router({
routes: [
{
path: '/',
name: 'IndexPage',
component: IndexPage
},
{
path: '/homepage',
name: 'HomePage',
component: HomePage
}
]
})src/components/IndexPage.vue
<script>
import VueRouter from 'vue-router'
export default {
name: 'IndexPage',
methods: {
redirectUser() { // this method is called on button click
if (1 == 1)
{
router.push('/homepage');
//this.$router.push('/homepage');
}
}
}
}
</script>在运行这段代码之后,我得到了一个错误,该错误声明:
ReferenceError:路由器未定义在eval中
src/main.js
import Vue from 'vue'
import App from './App'
import router from './router'
Vue.config.productionTip = false
window.Vue = Vue
new Vue({
el: '#app',
router,
components: { App },
template: '<App/>'
})此外,我可以从浏览器http://localhost:8080/#/homepage访问相同的链接。但不能从我的脚本代码重定向到它。
发布于 2018-07-11 13:38:20
谢谢你的反馈朋友。我没有在vue上导入我的路由器文件。更新后的代码行是:
src/components/IndexPage.vue
<script>
import router from '../router/index.js' // Just added this line and code works !!
export default {
name: 'IndexPage',
methods: {
redirectUser() { // this method is called on button click
if (1 == 1)
{
router.push({name: 'HomePage'})
}
}
}
}
</script>发布于 2018-07-11 10:54:10
导入Vue和VueRouter,然后调用
Vue.use(VueRouter)然后用你的方法,
this.$router.push({name: 'HomePage'}) 编辑
如果您想在代码中使用Vue和Vue路由器,那么您需要同时导入Vue和Vue路由器,这就是为什么您要获得的路由器在eval中没有定义的原因。同时也使用
this.$router.push('/homepage');在你的src/components/IndexPage.vue里试试这个
<script>
import Vue from 'vue'
import VueRouter from 'vue-router'
Vue.use(VueRouter)
export default {
name: 'IndexPage',
methods: {
redirectUser() { // this method is called on button click
if (1 == 1)
{
this.$router.push('/homepage');
}
}
}
}
</script>发布于 2018-07-11 08:59:53
使用组件实例属性访问路由器:
this.$router.push({name: 'HomePage'}) 你的应用程序里有吗?
new Vue({
router,
render: h => h(App)
}).$mount('#app')https://stackoverflow.com/questions/51281157
复制相似问题