LoginSignup
0
1

More than 3 years have passed since last update.

【日本語変数名で学ぶ】axiosのqueryパターンを実装で利用する

Last updated at Posted at 2019-09-24

新しいFEのメンバーをむかえる日が並行した仕事のリリース日だったGENYAです。

tl;dr

axiosのqueryパターンを使いたい場合は axios/lib/helpers/buildURLを読み込み、使う。

import buildURL from "axios/lib/helpers/buildURL";
const axiosの生成Query = buildURL(現在のURL, { a: "", b: 1, c: [1, 2, 3] });
// out => https://6bth3.csb.app/?a=&b=1&c[]=1&c[]=2&c[]=3

課題感

Ruby on RailsRANSACKが受け取れるqueryのパターンがbracketなquery情報だった。

どうせならaxiosのquery生成のパターンと全く同じ実装を使えた方がミスがなくてよいねという話しになりました。

query-stringarrayFormat: bracketを指定することで同じことが実現できます。

import buildURL from "axios/lib/helpers/buildURL";
const 現在のURL = `${global.location.href}`;
const axiosの生成Query = buildURL(現在のURL, {
  a: "",
  b: 1,
  c: -1,
  d: null,
  e: false,
  f: true,
  g: [1, 2, 3],
  h: { いろはに: "ほへと" }
});

export function App() {
  return (
    <p>{axiosの生成Query}</p>
  );
}

// => https://6bth3.csb.app/?a=&b=1&c=-1&e=false&f=true&g[]=1&g[]=2&g[]=3&h=%7B%22%E3%81%84%E3%82%8D%E3%81%AF%E3%81%AB%22:%22%E3%81%BB%E3%81%B8%E3%81%A8%22%7D

まとめ

複数の実装を持ってくるのではなく、同一の実装にまとめることで複雑度を1つ取り除くことができました。
こういった実装を積み重ねしていくことで抽象度を下げていければ良いですね。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1