类别组件在创建时执行api调用

时间:2018-01-14 12:31:34

标签: javascript vue.js vuejs2 lifecycle

目前我的类别组件正在创建http api调用。

因此,当我从索引转到类别时,http调用的结果是有效的。

但是现在当我改变类别,所以我从localhost:8080/category/1转到localhost:8080/category/2我的组件没有重新渲染,所以它不会再次创建,我的http调用函数不会再次触发我的意思喜欢。

    async created() {
        try {
            console.log(this.id);
            const response = await axios.get(`/api/category/getOne.php?id=${this.id}`, axiosConfig);
            console.log(response.data.records[0].name);
            this.category = [response.data.records[0].name];

        } catch (e) {
            this.errors.push(e);
            console.log(this.errors);
        }
    } 

你们有什么建议给我,我应该把这个http调用放在created ()中,而不是放在methods {}中,然后检测url id是否改变并在它改变时执行这个函数?或者有更好的vue方法呢?

1 个答案:

答案 0 :(得分:0)

我将代码移到methods {}以上并在created()上调用它并且ID更改如下:

created() {
    this.getData(this.id);
},
watch: {
    '$route.params.id'(newId, oldId) {
        this.getData(newId);
    }
}

@Belmin Bedak在评论部分建议。