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

相关文章
|
资源调度 JavaScript 前端开发
路由管理:Vue Router的使用和配置技巧
【10月更文挑战第21天】路由管理:Vue Router的使用和配置技巧
373 3
|
JavaScript API
vue 批量自动引入并注册组件或路由等等
【10月更文挑战第12天】 vue 批量自动引入并注册组件或路由等等
|
JavaScript 前端开发 API
vue3中常用插件的使用方法:按需引入自定义组件,自动导入依赖包,自动生成路由,自动生成模拟数据
vue3中常用插件的使用方法:按需引入自定义组件,自动导入依赖包,自动生成路由,自动生成模拟数据
2368 0
|
JavaScript UED
Vue + ElementUI 实现动态添加和删除表单项的多层嵌套表单
【10月更文挑战第5天】本示例展示了如何在 Vue.js 中使用 Element UI 组件实现动态添加和删除嵌套表单项。该表单包含设备信息、设备部位及其对应的任务列表,支持用户动态添加设备部位和任务,并提供相应的表单验证规则。
2044 0
Vue + ElementUI 实现动态添加和删除表单项的多层嵌套表单
|
JavaScript UED
"Vue实战技巧大揭秘:一招解决路由跳转页面不回顶部难题,让你的单页面应用用户体验飙升!"
【10月更文挑战第23天】在Vue单页面应用中,点击路由跳转时,默认情况下页面不会自动滚动到顶部,这可能影响用户体验。本文通过一个新闻网站的案例,介绍了如何使用Vue-router的全局前置守卫和`scrollBehavior`方法,实现路由跳转时页面自动滚动到顶部的功能,提升用户浏览体验。
751 0
|
JavaScript API
Vue中使用require.context()自动引入组件和自动生成路由的方法介绍
Vue中使用require.context()自动引入组件和自动生成路由的方法介绍
609 0
|
JavaScript Go
|
JavaScript C语言 Go
|
8月前
|
JavaScript
Vue中如何实现兄弟组件之间的通信
在Vue中,兄弟组件可通过父组件中转、事件总线、Vuex/Pinia或provide/inject实现通信。小型项目推荐父组件中转或事件总线,大型项目建议使用Pinia等状态管理工具,确保数据流清晰可控,避免内存泄漏。
682 2
|
7月前
|
缓存 JavaScript
vue中的keep-alive问题(2)
vue中的keep-alive问题(2)
585 137