Zai*_*SMJ 3 javascript vue.js vue-router vue-component vuejs2
如何从我的脚本代码重定向到另一个 vue 页面。我正在使用 router.push() 但无法重定向到我想要的 vue 页面。
以下是我的源代码。
src/路由器/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
}
]
})
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
运行此代码后,我收到错误,其中指出:
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/>'
})
Run Code Online (Sandbox Code Playgroud)
此外,我可以从浏览器访问相同的链接http://localhost:8080/#/homepage。但无法从我的脚本代码重定向到它。
导入Vue和VueRouter然后调用
Vue.use(VueRouter)
Run Code Online (Sandbox Code Playgroud)
然后在你的方法中,
this.$router.push({name: 'HomePage'})
Run Code Online (Sandbox Code Playgroud)
编辑
如果你想在你的代码中使用它,你需要导入 Vue 和 Vue Router,这就是为什么你在 eval 中得到 router is not Defined 的原因。并且还使用
this.$router.push('/homepage');
Run Code Online (Sandbox Code Playgroud)
在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>
Run Code Online (Sandbox Code Playgroud)