我如何 link 使用 vue-router 到组件的路由?
How do I link the route to the component using vue-router?
我正在尝试使用 vue-router 来 link url 到它们相应的组件。
我的问题是只有根 url ('/') 可以 link 到正确的组件,而任何其他 url (例如 '/first') 不能 link 到他们的组件。全部 link 到属于 '/' url 的组件。
当我在 vue 文件中使用 "a" 标签时,它会路由到正确的组件 - 只有当我将 url 直接输入浏览器时它才不起作用
main.js:
import Vue from 'vue'
import router from './router/index.js'
Vue.use(ElementUI)
Vue.config.productionTip = false
/* eslint-disable no-new */
new Vue({
el: '#app',
router,
template: '<App/>',
// components: { App },
render: h => h(App)
})
index.js:
import Vue from 'vue'
import Router from 'vue-router'
import Hello from '../components/Hello.vue'
import First from '../components/firstPage.vue'
import Login from '../components/logIn.vue'
Vue.use(Router)
const routes =[
{
path: '/',
component: Login
},
{
path:'/first',
component:Hello
}
]
const router = new Router({
routes
})
export default router
我想你也可以试试下面的方法。这是有效的,试试吧!您可以添加 mode: 'hash',
以在所有 urls
.
中提供默认值 #
import Vue from 'vue';
import Router from 'vue-router'
import Hello from '../components/Hello.vue'
import First from '../components/firstPage.vue'
import Login from '../components/logIn.vue'
Vue.use(VueRouter);
const router = new VueRouter({
mode: 'hash',
base: '/your_base_name_if_you_want',
linkActiveClass: 'active-tab', //if you w
routes: [
{
path: '/',
redirect: '/if_you_want_to_redirect',
name: 'Login', //Whatever
component: {
render (c) { return c('router-view'); }
},
children: [
{
path: '/',
component: Login
name: 'Login',
meta: { title: 'Your title name' }
},
{
path:'/first',
component:Hello
name: 'Hello',
meta: { title: 'Your title name' }
}
]
}
]
})
export default router
您也可以使用以下方法将其从 urls
中删除:
var router = new VueRouter({
history: true
});
希望对您有所帮助!
The default mode for vue-router is hash mode
这就是为什么当您的 url 是 '/first' 时您无法获取 'Hello' 组件的原因。相反,您可以尝试输入“/#/first”。
如果你想使用像'/first'这样的历史模式,像这样为你的路由对象设置模式属性。
const router = new Router({
mode: 'history',
routes
})
希望对你有帮助。
我正在尝试使用 vue-router 来 link url 到它们相应的组件。
我的问题是只有根 url ('/') 可以 link 到正确的组件,而任何其他 url (例如 '/first') 不能 link 到他们的组件。全部 link 到属于 '/' url 的组件。
当我在 vue 文件中使用 "a" 标签时,它会路由到正确的组件 - 只有当我将 url 直接输入浏览器时它才不起作用
main.js:
import Vue from 'vue'
import router from './router/index.js'
Vue.use(ElementUI)
Vue.config.productionTip = false
/* eslint-disable no-new */
new Vue({
el: '#app',
router,
template: '<App/>',
// components: { App },
render: h => h(App)
})
index.js:
import Vue from 'vue'
import Router from 'vue-router'
import Hello from '../components/Hello.vue'
import First from '../components/firstPage.vue'
import Login from '../components/logIn.vue'
Vue.use(Router)
const routes =[
{
path: '/',
component: Login
},
{
path:'/first',
component:Hello
}
]
const router = new Router({
routes
})
export default router
我想你也可以试试下面的方法。这是有效的,试试吧!您可以添加 mode: 'hash',
以在所有 urls
.
#
import Vue from 'vue';
import Router from 'vue-router'
import Hello from '../components/Hello.vue'
import First from '../components/firstPage.vue'
import Login from '../components/logIn.vue'
Vue.use(VueRouter);
const router = new VueRouter({
mode: 'hash',
base: '/your_base_name_if_you_want',
linkActiveClass: 'active-tab', //if you w
routes: [
{
path: '/',
redirect: '/if_you_want_to_redirect',
name: 'Login', //Whatever
component: {
render (c) { return c('router-view'); }
},
children: [
{
path: '/',
component: Login
name: 'Login',
meta: { title: 'Your title name' }
},
{
path:'/first',
component:Hello
name: 'Hello',
meta: { title: 'Your title name' }
}
]
}
]
})
export default router
您也可以使用以下方法将其从 urls
中删除:
var router = new VueRouter({
history: true
});
希望对您有所帮助!
The default mode for vue-router is hash mode
这就是为什么当您的 url 是 '/first' 时您无法获取 'Hello' 组件的原因。相反,您可以尝试输入“/#/first”。 如果你想使用像'/first'这样的历史模式,像这样为你的路由对象设置模式属性。
const router = new Router({
mode: 'history',
routes
})
希望对你有帮助。