2.39.0 • Published 12 months ago

@leather.io/query v2.39.0

Weekly downloads
-
License
MIT
Repository
github
Last release
12 months ago

@leather.io/queries

We use React Query to fetch APIs and to manage the cache of the responses.

Code practices:

  1. Create custom hooks for queries, don't use plain useQuery in components.
  2. Treat the query key like a dependency array. queryFn should receive same arguments as a queryKey.
  3. Use selectors to transform the data before usage. Example:
export const useTodosQuery = select =>
  useQuery({
    queryKey: ['todos'],
    queryFn: fetchTodos,
    select,
  });

export const useTodosCount = () => useTodosQuery(data => data.length);
export const useTodo = id => useTodosQuery(data => data.find(todo => todo.id === id));
  1. Keep api layer separate from the queries (queryFn separate from useQueries). Example:
function fetchGroups(): Promise<Group[]> {
  return axios.get('groups').then((response) => response.data)
}

// ✅ data will be `Group[] | undefined` here
function useGroups() {
  return useQuery({ queryKey: ['groups'], queryFn: fetchGroups })
}

// ✅ data will be `number | undefined` here
function useGroupCount() {
  return useQuery({
    queryKey: ['groups'],
    queryFn: fetchGroups,
    select: (groups) => groups.length,
  })
}
  1. Structure your Query Keys from most generic to most specific. Example:
['todos', 'list', { filters: 'all' }][('todos', 'list', { filters: 'done' })][
  ('todos', 'detail', 1)
][('todos', 'detail', 2)];
  1. Optional: we might want to try the concept of query key factory: https://tkdodo.eu/blog/effective-react-query-keys#use-query-key-factories

Reference: https://tkdodo.eu/blog/practical-react-query

2.27.9

1 year ago

2.27.6

1 year ago

2.27.5

1 year ago

2.27.8

1 year ago

2.27.7

1 year ago

2.27.2

1 year ago

2.27.1

1 year ago

2.27.4

1 year ago

2.27.3

1 year ago

2.23.2

1 year ago

2.23.1

2 years ago

2.27.0

1 year ago

2.23.3

1 year ago

2.30.1

1 year ago

2.34.0

1 year ago

2.30.0

1 year ago

2.34.6

1 year ago

2.19.0

2 years ago

2.34.5

1 year ago

2.34.7

1 year ago

2.34.2

1 year ago

2.34.1

1 year ago

2.38.0

12 months ago

2.34.4

1 year ago

2.34.3

1 year ago

2.22.1

2 years ago

2.22.0

2 years ago

2.26.7

1 year ago

2.26.6

1 year ago

2.26.9

1 year ago

2.26.8

1 year ago

2.26.3

1 year ago

2.26.2

1 year ago

2.26.5

1 year ago

2.26.4

1 year ago

2.22.3

2 years ago

2.22.2

2 years ago

2.26.1

1 year ago

2.26.0

1 year ago

2.22.4

2 years ago

2.33.0

1 year ago

2.37.7

12 months ago

2.37.6

12 months ago

2.37.9

12 months ago

2.37.8

12 months ago

2.37.3

1 year ago

2.37.5

12 months ago

2.37.4

12 months ago

2.37.1

1 year ago

2.37.0

1 year ago

2.21.0

2 years ago

2.21.1

2 years ago

2.29.8

1 year ago

2.29.7

1 year ago

2.29.4

1 year ago

2.29.3

1 year ago

2.29.6

1 year ago

2.29.5

1 year ago

2.29.0

1 year ago

2.29.2

1 year ago

2.29.1

1 year ago

2.37.10

12 months ago

2.25.0

1 year ago

2.32.0

1 year ago

2.36.4

1 year ago

2.36.3

1 year ago

2.36.6

1 year ago

2.36.5

1 year ago

2.36.0

1 year ago

2.36.2

1 year ago

2.36.1

1 year ago

2.20.0

2 years ago

2.26.23

1 year ago

2.26.22

1 year ago

2.26.21

1 year ago

2.26.20

1 year ago

2.28.1

1 year ago

2.28.0

1 year ago

2.24.0

1 year ago

2.31.0

1 year ago

2.26.24

1 year ago

2.26.12

1 year ago

2.26.11

1 year ago

2.26.10

1 year ago

2.39.0

12 months ago

2.35.1

1 year ago

2.35.0

1 year ago

2.35.2

1 year ago

2.23.0

2 years ago

2.26.19

1 year ago

2.26.18

1 year ago

2.26.17

1 year ago

2.26.16

1 year ago

2.26.15

1 year ago

2.26.14

1 year ago

2.26.13

1 year ago

2.18.0

2 years ago

2.17.0

2 years ago

2.16.0

2 years ago

2.15.2

2 years ago

2.15.0

2 years ago

2.15.1

2 years ago

2.14.1

2 years ago

2.14.0

2 years ago

2.13.1

2 years ago

2.13.0

2 years ago

2.11.0

2 years ago

2.12.0

2 years ago

2.10.1

2 years ago

2.10.0

2 years ago

2.9.0

2 years ago

2.8.0

2 years ago

2.7.1

2 years ago

2.7.0

2 years ago

2.6.1

2 years ago

2.6.0

2 years ago

2.5.0

2 years ago

2.4.3

2 years ago

2.4.2

2 years ago

2.4.1

2 years ago

2.4.0

2 years ago

2.3.0

2 years ago

2.2.0

2 years ago

2.1.0

2 years ago

2.0.2

2 years ago

2.0.1

2 years ago

2.0.0

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago

0.11.3

2 years ago

0.11.2

2 years ago

0.11.1

2 years ago

0.11.0

2 years ago

0.10.2

2 years ago

0.10.1

2 years ago

0.10.0

2 years ago

0.9.5

2 years ago

0.9.4

2 years ago

0.9.3

2 years ago

0.9.2

2 years ago

0.9.1

2 years ago

0.9.0

2 years ago