简体   繁体   English

加载默认组件-Vue.js CDN

[英]Loading Default Component - Vue.js CDN

How do I load a component in the <router-view> when the page by default on that page? 默认情况下,该页面在页面上如何加载<router-view>的组件? I want to have a default when there is no :id 我想在没有:id时使用默认值

 <script src="https://unpkg.com/vue/dist/vue.js"></script>
    <script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>


    <div id="app">
        <p>
            <router-link to="/product">/product</router-link>
            <router-link to="/product/foo">/product/foo</router-link>

        </p>
        <router-view>

        </router-view>
    </div>
    <script>
    const Product = {template: `<div class="user"> <h2>User {{ $route.params.id }}</h2></div> `}

    const router = new VueRouter({

    routes: [
        {
            path: '/product/:id', component: Product, 
        }
    ],

    mode: 'history',

    })

    const app = new Vue({ 
        router 
    })

    .$mount('#app')

    </script>

For the vue router you can use optional parameter. 对于vue路由器,您可以使用可选参数。

So instead of path: '/product/:id' you can write path: '/product/:id? 因此,除了path: '/product/:id'您还可以编写path: '/product/:id? (added ? at the end) (在末尾添加?

<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>

<div id="app">
    <p>
        <router-link to="/product">/product</router-link>
        <router-link to="/product/foo">/product/foo</router-link>
    </p>

    <router-view></router-view>
</div>

<script>
    const Product = {
        /*
            router `id` will be passed as prop
            so we can use `id` in our templates instead of $route.params.id
            this way we can also specify the default value is nothing was passed
         */
        template: `<div class="user"> <h2>User {{ id }}</h2></div> `,
        props: {
            id: {
                type:    String,
                // specify default value if id is not passed to the router
                default: 'N/A'
            }
        }
    }

    const router = new VueRouter({
        mode: 'history',
        routes: [
            {
                // :id? means that it's an optional parameter
                path: '/product/:id?',
                component: Product,
                // Passing Props to Route Components
                props:     true
            },
        ],
    })

    const app = new Vue({
        router
    })
    .$mount('#app')

</script>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM