vue中app文件中写router-view,跳转路由页面也写router-view
时间: 2023-08-19 19:09:44 浏览: 270
在Vue中,可以使用`<router-view>`组件来渲染对应的路由组件。在App.vue文件中,通常会写一个`<router-view>`来作为根路由的占位符,用于渲染不同路由页面的内容。而在其他的路由页面组件中,也可以再次使用`<router-view>`来渲染嵌套的子路由。
例如,在App.vue中可以这样写:
```html
<template>
<div>
<header>
<!-- 这里放置导航栏等公共组件 -->
</header>
<main>
<!-- 渲染对应路由页面的内容 -->
<router-view></router-view>
</main>
<footer>
<!-- 这里放置页脚等公共组件 -->
</footer>
</div>
</template>
```
而在其他的路由页面组件中,也可以这样写:
```html
<template>
<div>
<h1>这是其他路由页面</h1>
<!-- 渲染子路由页面的内容 -->
<router-view></router-view>
</div>
</template>
```
这样,当你进行路由跳转时,Vue Router会根据配置的路由规则,匹配到对应的路由组件,并将其内容渲染到`<router-view>`中。这样就实现了在不同路由页面中切换显示内容的效果。
相关问题
在vue中想要使用<router-link>实现整个页面的跳转,怎样设置<router-view></router-view>
在Vue中使用<router-link>实现整个页面的跳转,需要首先在App.vue文件中添加<router-view>标签,作为所有路由组件的显示位置。然后,在需要实现跳转的地方,使用<router-link>标签来设置跳转的路径和参数。例如,在homepage页面中,可以使用如下代码实现跳转到list组件的界面:
```html
<div class="left">
<!-- 会被替换的界面位置 -->
<router-view></router-view>
</div>
<!-- 点击后,前面的router-view会被替换成list组件的界面 -->
<router-link class="series-a" exact-active-class="series" :to="{path:'/list',query:{seriesid:item.id}}">
<i class="iconfont"></i> {{item.special_column}}
</router-link>
```
这样,当点击<router-link>标签时,对应的路由组件会被渲染到<router-view>标签所在的位置。
vue2项目,一个页面两个分别独立的router-view,两个router-view同时存在切互不干扰,怎么定义router
在 Vue2 中,如果你想在一个页面上同时包含两个独立的 `router-view`,并且它们互不影响,你需要对路由器配置做一些特殊处理。你可以考虑创建两个独立的路由组件,每个组件对应一个 `router-view`。
首先,在你的 `main.js` 或者 `router/index.js` 文件里,定义两个路由:
```js
// router/index.js
import Vue from 'vue';
import Router from 'vue-router';
Vue.use(Router);
export default new Router({
// 使用namespaces(命名空间)来区分这两个独立的视图区域
mode: 'history', // 假设你已经在服务器设置了相应的 URL 路由模式
routes: [
{
path: '/view1',
name: 'View1',
component: { // 使用异步加载或懒加载组件的方式
components: {
content: () => import('./views/View1.vue') // 视图1组件
}
}
},
{
path: '/view2',
name: 'View2',
component: {
components: {
content: () => import('./views/View2.vue') // 视图2组件
}
}
}
]
});
```
然后,在你的父组件中引入这两个路由,并将它们放在不同的 `<router-view>` 标签内:
```html
<!-- main.vue 或者 app.vue -->
<template>
<div>
<router-link to="/view1">跳转到 View1</router-link>
<router-view :name="view1RouteName"></router-view> <!-- 使用 name 属性指定 view1 的路由 -->
<router-link to="/view2">跳转到 View2</router-link>
<router-view :name="view2RouteName"></router-view> <!-- 使用 name 属性指定 view2 的路由 -->
</div>
</template>
<script>
export default {
data() {
return {
view1RouteName: 'View1',
view2RouteName: 'View2'
};
},
methods: {
switchView1() {
this.view1RouteName = 'View1';
this.view2RouteName = 'View2'; // 如果需要清除其他视图,可以在这里设置为默认值
},
switchView2() {
this.view1RouteName = 'View2';
this.view2RouteName = 'View1'; // 同理,切换到另一个视图
}
}
};
</script>
```
现在,你可以通过点击链接在两个 `router-view` 之间切换,并且它们是完全独立的,不会相互影响。
阅读全文