【vue】vue路由

简介:
<style>
body {
margin : 0 ;
}
#tab-bar {
position : absolute ;
left : 0 ;
bottom : 0 ;
width : 100% ;
border : solid 1px black ;
box-sizing : border-box ;
}
#tab-bar ul {
padding : 0 ;
margin : 0 ;
list-style : none ;
display : flex ;
}
#tab-bar li {
width : 25% ;
border-right : solid 1px black ;
}
#tab-bar li:nth-of-type( 4 ) {
border : none ;
}
#tab-bar a {
display : inline-block ;
margin : 0 ;
height : 49px ;
/* border: solid 1px black; */
width : 100% ;
text-align : center ;
line-height : 49px ;
/* box-sizing: border-box; */
}
.router-view {
border : solid 1px red ;
box-sizing : border-box ;
height : calc ( 100vh - 49px );
overflow : scroll ;
}


< /style>
</head>
<body>
<div id = "app" >

<!-- router-view是vue-router中自带的组件,作为路由视图使用,被路由匹配到的组件会显示在这个标签中 -->
<keep-alive>
<router-view class = "router-view" ></router-view>
</keep-alive>
<nav id = "tab-bar" >
<ul>
<li>
<!-- routerlink标签相当于a标签,不用添加# -->
<router-link to = "/home" > 主页 </router-link>
</li>
<li><a href = "#/friend" > 好友 </a></li>
<li><a href = "" > 新闻 </a></li>
<li><a href = "" > 设置 </a></li>
</ul>
</nav>

</div>
</body>
<script src = "vue.js" ></script>
<script src = "vue-router.js" ></script>
<script>

let home = {
template: `<div class="home-root">
<h1>主页</h1>
<p>首页内容</p>
<p>首页内容</p>
<p>首页内容</p>
<p>首页内容</p>
<p>首页内容</p>
<p>首页内容</p>
<p>首页内容</p>
<p>首页内容</p>
<p>首页内容</p>
<p>首页内容</p>
<p>首页内容</p>
<p>首页内容</p>
<p>首页内容</p>
<p>首页内容</p>
<p>首页内容</p>
</div>` ,
mounted () {
console . log ( this . $el );
},
destroyed () {
console . log ( "home销毁了" );
},
}

let friend = {
template: `<div>
<h1>好友列表</h1>
</div>`
}


// 使用vue路由,需要创建一个路由对象,用于添加路由规则。
let router = new VueRouter ({
// 路由配置对象中通过toutes数组添加路由规则
routes: [
// 路由规则中记录哪个哈希路径对应哪个组件,
// 当页面的哈希值为#/home时,router-view中显示home组件
{ path: "/home" , component:home },
{ path: "/friend" , component:friend },
// 路由规则中可以使用重定向
{ path: "/" , redirect: "/home" }
]
});

// vue路由中实现的是根据页面hash不同,在router-view中显示不同的组件,从而实现页内跳转,
这种直接当做页面使用,写入路由规则的组件,叫做 *页面级组件*。

new Vue ({
el: "#app" ,
data: {

},
components: {
home ,
friend
},
// 路由配置对象创建之后必须注入根组件才能生效。
router
});


< /script>
目录
相关文章
|
22小时前
|
JavaScript 索引
vue 在什么情况下在数据发生改变的时候不会触发视图更新
vue 在什么情况下在数据发生改变的时候不会触发视图更新
10 2
|
1天前
|
JavaScript
vue实现递归组件
vue实现递归组件
|
1天前
|
JavaScript 开发者 UED
Vue入门到关门之第三方框架elementui
ElementUI是一个基于Vue.js的组件库,包含丰富的UI组件如按钮、表格,强调易用性、响应式设计和可自定义主题。适用于快速构建现代化Web应用。官网:[Element.eleme.cn](https://element.eleme.cn/#/zh-CN)。安装使用时,需在项目中导入ElementUI和其样式文件。
|
1天前
|
JavaScript 前端开发 API
vue改变数组页面重新渲染的操作/那些操作不会重新渲染页面以及解决方法
vue改变数组页面重新渲染的操作/那些操作不会重新渲染页面以及解决方法
9 2
|
1天前
|
缓存 JavaScript UED
vue中keep-alive的用法和含义
Vue.js 的 `&lt;keep-alive&gt;` 组件用于缓存不活动的组件实例,避免销毁并优化性能。当组件切换时,状态得以保持。用法是将其作为包裹组件,包含需缓存的组件。例如,在切换 `ComponentA` 和 `ComponentB` 时,利用 `&lt;keep-alive&gt;` 可以在状态间切换而不会丢失信息。此外,结合 `&lt;router-view&gt;` 可缓存路由组件,`include` 和 `exclude` 属性则能指定缓存特定组件,提升应用性能和用户体验。
|
1天前
|
Web App开发 缓存 JavaScript
优化Vue首页加载速度的实用方法
优化Vue首页加载速度的实用方法
8 1
|
7天前
|
资源调度 JavaScript 前端开发
【vue】vue中的路由vue-router,vue-cli脚手架详细使用教程
【vue】vue中的路由vue-router,vue-cli脚手架详细使用教程
|
7天前
|
JavaScript
【vue】深入探讨vue中组件间多种传值方式
【vue】深入探讨vue中组件间多种传值方式
【vue】深入探讨vue中组件间多种传值方式
|
7天前
|
JavaScript 前端开发
vue组件化开发流程梳理,拿来即用
vue组件化开发流程梳理,拿来即用