Vuejs 2 通过更改 slug 重新加载内容

Vuejs 2 reload content by changing slug

我有以下代码,它可以通过刷新页面正常工作,但在单击导航时却不行。

如何实现当我点击用户时,fetchData 方法将被执行?所以我可以看到 console.log 和 json 数据。

导航:

<div id="navbar" class="navbar-collapse collapse">
                    <ul class="nav navbar-nav">
                        <router-link  v-for="item in items" v-if="item.navitems && item.navitems.navitem" :to="item.navitems.navitem.url" tag="li" active-class="active" exact><a>{{item.navitems.navitem.name}}</a></router-link>

Content.vue

<template>
    <div>
        <div class="container">
            <h1>{{ slug }}</h1>
            <ul v-if="items && items.length">
                <li v-for="item of items">
                    <p><strong>{{item.name}}</strong></p>
                    <p>{{item.email}}</p>
                </li>
            </ul>
        </div>
    </div>
</template>

<script>
    export default{
        props: ['slug'],
        data: () => ({
            items: []
        }),
        created: function () {
            this.fetchData();
        },
        methods: {
            fetchData: function () {
                var self = this;
                console.log(this.slug);
                $.get( 'http://jsonplaceholder.typicode.com/' + this.slug, function( data ) {
                    self.items = data;
                    console.log(data);
                });

            }

        }
    }
</script>

改创建为挂载并添加监视。

    watch: {
        '$route.params.slug'(newSlug, oldSlug) {
            this.fetchData(newId);
        }
    }