vue再读84-vue-router嵌套路由

简介: vue再读84-vue-router嵌套路由
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<!-- 1引入插件的js -->
<!-- 2设置链接 -->
<!-- 3设立容器部分 -->
<!-- 4提供要渲染的组件 -->
<!-- 5配置路由 -->
<!-- 6挂载路由 -->
<style>
    li {
        list-style: none;
    }
    a {
        text-decoration: none;
    }
    .container {
        height: 100px;
        border: 1px solid #ccc;
    }
</style>
<body>
    <div id="app">
        <ul>
            <router-link to="/home" tag="li"><a>首页</a></router-link>
            <router-link to="/top" tag="li"><a>热点</a></router-link>
            <router-link to="/music" tag="li"><a>音乐</a></router-link>
        </ul>
        <router-view class="container"></router-view>
    </div>
    <router-view></router-view>
    </div>
    <script src="./js/vue.js"></script>
    <script src="./js/vuerouter.js"></script>
    <script>
        //获取不同的值
        //hash变化的时候触发该事件
        /*    var div = document.getElementById('container');
           window.onhashchange = function() {
               console.log("-----");
               var hash = location.hash;
               console.log(hash);
               hash = hash.replace("#", '');
               switch (hash) {
                   case '/aaa':
                       div.innerHTML = "AAA";
                       break;
               }
           } */
        //提供渲染组件
        var home = {
            template: `<div>home</div>`
        }
        var Top = {
            template: `<div>top</div>`
        }
        var music = {
            template: `<div>
                <router-link to="/music/pop" tag="li"><a>流行</a></router-link>
            <router-link to="/music/rock" tag="li"><a>摇滚</a></router-link>
            <router-link to="/music/cal" tag="li"><a>古典</a></router-link>
            <router-view class="container-sub"></router-view>
            </div>`
        }
        var musicSub = {
                template: `<div>我是musicSub组件</div>`
            }
            //实例化路由
        var routes = [{
            name: 'home',
            path: '/home',
            component: home
        }, {
            name: 'top',
            path: '/top',
            component: Top
        }, {
            name: 'music',
            path: '/music',
            component: music,
            children: [{
                path: '/music/:id',
                component: musicSub
            }]
        }, ]
        var router = new VueRouter({
            routes
        })
        new Vue({
            el: '#app',
            //挂载使用对象
            router,
            data: {
            },
            methods: {
            }
        })
    </script>
</body>
</html>

image.png

相关文章
|
1天前
|
JavaScript
【vue】 父组件调用子组件方法
【vue】 父组件调用子组件方法
6 0
|
1天前
|
JavaScript
【vue】 如何给封装好的组件加click事件
【vue】 如何给封装好的组件加click事件
6 1
|
1天前
|
存储 JavaScript 前端开发
【Vue】绝了!这生命周期流程真...
【Vue】绝了!这生命周期流程真...
|
2天前
|
JavaScript 索引
【vue】框架搭建
【vue】框架搭建
6 1
|
2天前
|
JavaScript 前端开发 容器
< 每日小技巧: 基于Vue状态的过渡动画 - Transition 和 TransitionGroup>
Vue 的 `Transition` 和 `TransitionGroup` 是用于状态变化过渡和动画的组件。`Transition` 适用于单一元素或组件的进入和离开动画,而 `TransitionGroup` 用于 v-for 列表元素的增删改动画,支持 CSS 过渡和 JS 钩子。
< 每日小技巧: 基于Vue状态的过渡动画 - Transition 和 TransitionGroup>
|
2天前
|
JavaScript
【vue】setInterval的嵌套实例
【vue】setInterval的嵌套实例
6 1
|
2天前
|
缓存 JavaScript 前端开发
Vue.js 路由时用于提高应用程序性能
Vue.js 路由时用于提高应用程序性能
|
2天前
|
JavaScript 前端开发 安全
【Vue】内置指令真的很常用!
【Vue】内置指令真的很常用!
|
2天前
|
JavaScript
【Vue】过滤器Filters
【Vue】过滤器Filters
|
2天前
|
存储 JavaScript
Vue的状态管理:Vuex的使用和最佳实践
【4月更文挑战第24天】Vue状态管理库Vuex用于集中管理组件状态,包括State(全局状态)、Getters(计算属性)、Mutations(同步状态变更)和Actions(异步操作)。Vuex还支持Modules,用于拆分大型状态树。使用Vuex时,需安装并创建Store,定义状态、getter、mutation和action,然后在Vue实例中注入Store。遵循最佳实践,如保持状态树简洁、使用常量定义Mutation类型、避免直接修改状态、在Actions中处理异步操作、合理划分Modules,以及利用Vuex提供的插件和工具,能提升Vue应用的稳定性和可维护性。