javascript - 过滤搜索栏中的项目 Vue Composition API
问题描述
我有一个使用 quasar 和组合 API 的 vue 应用程序。当应用程序启动时,它最初会从数据库中收集一次数据,并返回一个类别列表,其中包含每个类别中的人员。我想要做的是添加对搜索的支持,如上图所示。我的问题是我在哪里放置在每个类别中过滤人员的代码?它是作为计算属性进入视图组件还是我应该在“getters”中执行此逻辑?任何伪代码将不胜感激。
搜索输入被写回“状态”,因此我可以在应用程序的其他部分访问该值。
这是我的主要文件。
吸气剂.ts
import { StateInterface } from '../index';
import { AppState } from 'src/models/types';
const getters: GetterTree<AppState, StateInterface> = {
categories: state => state.categories,
isBusy: state => state.isBusy,
settings: state => state.settings,
filters: (state) => state.filters,
};
export default getters;
index.vue文件的重要位
<template>
<q-page>
<!-- displaying sections and people-->
<q-list>
<q-expansion-item
v-for="cat in categories"
:label="cat.name"
:key="cat.name"
>
<q-card>
<q-card-section>
<PersonCard
v-for="(item, index) in cat.people"
:key="index"
:item="item"
/>
</q-card-section>
</q-card>
</q-expansion-item>
</q-list>
</q-page>
</template>
export default defineComponent({
name: 'PageIndex',
components: {},
setup(props, { root }) {
const categories = computed<Category[]>(() => root.$store.getters['app/categories']);
return {
categories,
};
},
});
</script>
更新 - 回应回答建议......
所以你建议我做这样的事情
吸气剂.ts
import { GetterTree } from 'vuex';
import { StateInterface } from '../index';
import { AppState } from 'src/models/types';
const getters: GetterTree<AppState, StateInterface> = {
categories: state => state.categories,
isBusy: state => state.isBusy,
settings: state => state.settings,
filters: (state) => state.filters,
categoriesFiltered: state => ({
const categories: Category[] = [];
// for-loop people per category collecting those that match search string
return categories;
})
};
export default getters;
解决方案
将其放入存储的 getter 中,因为 getter 用于计算数据,只需在视图组件的 created 钩子中调用该 getter
推荐阅读
- javascript - 未捕获的类型错误:core_1.style 不是函数
- flutter - 将上下文传递给导航器推送以访问继承的小部件数据
- php - 为什么这个数据集没有被输入数据库?
- html - Flex 不适用于 div 内排列的输入
- php - 从字符串中获取 2 条信息
- spring - 与 Spring Data Elasticsearch 3.1.4 一起使用的正确 Elasticsearch 版本是什么
- protractor - 无法使用量角器测试 toast 消息
- javascript - 在 Flatlist React Native 中传播不可迭代实例的尝试无效
- android - Android Studio 中的应用合并发布资源错误
- javascript - 遍历对象键以仅返回真值