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

时间:2017-05-28 05:10:55

标签: vuejs2 vuex

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

当我点击用户时,如何实现这一点,方法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>

1 个答案:

答案 0 :(得分:0)

将已创建的内容更改为已安装并添加观看。

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