Как применить компонент фильтра при вызове api JSON (Lazyload, Vuejs, Laravel)

#laravel #vue.js

Вопрос:

У меня есть таблица с несколькими компонентами фильтра и доступ к моему бэкэнду laravel, чтобы выкашлять данные. В настоящее время у меня есть то, что функции фильтра применяются к табличным данным в интерфейсе, но мой коллега только что сказал мне, что у нас будет миллион записей, поэтому он должен быть ленивым, поэтому он загружает только те записи, которые доступны для просмотра.

  • Как применить функцию фильтра к вызову api выборки? Я хочу, чтобы данные были отфильтрованы, а затем отправлены в Vue.

Я понятия не имею, что искать, «вызов api vue lazyload» не показывает, что я ищу в Google.


мой вызов выборки в базу данных laravel:

        getCoinRecords(api_url) {
            api_url = api_url || '/api/support/list';
            fetch(api_url)
                .then(response => response.json())
                .then(response => {
                    this.coins = response.data;
                })
        },
        
 

моя функция фильтра vue:

  data() {
    return {
        coins: [],
        filterResult: {},
    }
},
computed: {
    dynFilter(){
        let items = this.coins;
            for (const [key, value] of Object.entries(this.filterResult)) {
                if(value != ""){
                    items = items.filter(coin =>{
                        if (coin[key] == value){
                            return coin[key];
                        }
                    })
                }
            }
        return items;
    },
}
 

Комментарии:

1. как структурированы данные вашего фильтра?

2. Я предполагаю, что вы хотите посмотреть на разбиение на страницы? Если вы не хотите просматривать все более миллиона строк одновременно, то это то, что вам нужно. Извлеките строки по частям и реализуйте какой-то интерфейс разбиения на страницы.

3. @Терри, не могли бы вы дать больше информации о том, как я могу это сделать?

4. @mrhn Вы имеете в виду, как выглядит моя структура json?

5. Вам нужно иметь некоторые фильтры в vuejs, как они структурированы?