为了账号安全,请及时绑定邮箱和手机立即绑定

Vue js Laravel - Axios 在更改页面、类别和子类别时发出多个 (2) 请求

Vue js Laravel - Axios 在更改页面、类别和子类别时发出多个 (2) 请求

Cats萌萌 2021-08-20 17:44:28
我正在使用前端的Vue和后端的Laravel PHP构建一个应用程序。它是一个单页应用程序(SPA)。更改页面时,有时 -并非总是- axios对同一页面发出两个请求。我很难弄清楚发生了什么。当链接更改时,我有两个观察者,一个用于顶级类别,另一个用于子类别。它们触发调用 loadData 方法的 created() 钩子。如果我更改主类别和子类别(例如:从 1/5 到 2/31),则将调用 loadData 方法两次。我该如何解决这个问题?Google 网络选项卡(.json请求不代表我上面提到的相同类型的页面,只有数字):<script>    import axios from 'axios'    import { mapGetters } from 'vuex'    import Form from 'vform'    export default {        data() {            return {                products: {                    cat : {} ,                     products : []                },                productsShow: '',                quickSearchQuery: '',                loadeddata : false,            }        },        methods: {            loadMore () {                this.productsShow += 21            },            loadData () {                if ( this.$route.params.sub_id ) {                    axios.get('/api/cat/' + this.$route.params.cat_id + '/' + this.$route.params.sub_id).then(response => {                     this.products = response.data                     this.productsShow = 21                    this.loadeddata = true                    }).catch(error => {                        if (error.response.status === 404) {                            this.$router.push('/404');                        }                    });                } else {                    axios.get('/api/cat/' + this.$route.params.cat_id ).then(response => {                     this.products = response.data                     this.productsShow = 21                    this.loadeddata = true                    }).catch(error => {                        if (error.response.status === 404) {                            this.$router.push('/404');                        }                    });             
查看完整描述

2 回答

?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

已解决:


watch: {

    '$route.params': function (cat_id, sub_id) {

    this.quickSearchQuery = ''

    this.loadData()

},

//img1.sycdn.imooc.com//611f79b50001673d05610526.jpg

查看完整回答
反对 回复 2021-08-20
?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

已解决:


watch: {

    '$route.params': function (cat_id, sub_id) {

    this.quickSearchQuery = ''

    this.loadData()

},


查看完整回答
反对 回复 2021-08-20
  • 2 回答
  • 0 关注
  • 131 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信