今天看了下 vue router 的文档,自己写了个小 demo,代码如下

<html>
<head>
    <script src="https://unpkg.com/vue/dist/vue.js"></script>
    <script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>
</head>
<body>
    <div>
        <router-link to="/home">Home</router-link>
        <router-link to="/about">About</router-link>
        <div id="app">
            <router-view></router-view>
        </div>
    </div>
    <script>
        var Home = Vue.extend({
            template: '<div><h1>Home</h1><p>{{msg}}</p></div>',
            data: function() {
                return {
                    msg: 'Hello, vue router!'
                }
            }
        })
        var About = Vue.extend({
            template: '<div><h1>About</h1><p>This is the tutorial about vue-router.</p></div>'
        })
        const routes = [{
                path: '/home',
                component: Home
            },
            {
                path: '/about',
                component: About
            }
        ]
        const router = new VueRouter({
            routes
        })
        const app = new Vue({
            router
        }).$mount('#app')
    </script>
</body>

</html>

通过直接输入地址的方式可以实现页面显示内容的变化,但是点击跳转链接不行,查看页面源码发现 router-link 标签没有被渲染成 a 标签。

经过尝试发现原来是 router-link 标签也需要包裹在 #app 的标签里才行,修改后可正常运行的代码如下

<html>
<head>
    <script src="https://unpkg.com/vue/dist/vue.js"></script>
    <script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>
</head>
<body>
    <div id="app">
        <router-link to="/home">Home</router-link>
        <router-link to="/about">About</router-link>
        <div>
            <router-view></router-view>
        </div>
    </div>
    <script>
        var Home = Vue.extend({
            template: '<div><h1>Home</h1><p>{{msg}}</p></div>',
            data: function() {
                return {
                    msg: 'Hello, vue router!'
                }
            }
        })
        var About = Vue.extend({
            template: '<div><h1>About</h1><p>This is the tutorial about vue-router.</p></div>'
        })
        const routes = [{
                path: '/home',
                component: Home
            },
            {
                path: '/about',
                component: About
            }
        ]
        const router = new VueRouter({
            routes
        })
        const app = new Vue({
            router
        }).$mount('#app')
    </script>
</body>
</html>

 

转载于:https://my.oschina.net/u/3188258/blog/1625167

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐