質問の問合せ-util関数とテストユニットの作成
12593 ワード
2番目の項目では,宿泊プラットフォーム上で宿泊場所を検索/フィルタリングする機能を実現するために,クエリー文字列を用いる必要がある.
Nav Barボタンをクリックして表示されるモードウィンドウで、領域と期間を選択すると、選択した期間が適用され、検索されたリストページに移動します.クエリーも使用できます.
選択した時間は検索ページに移動し、urlからクエリーリストに移動します.
すなわち,クエリはutil関数の重要な構成部分である.
プロジェクトが終わった今、このutil関数を再考します.
前回の配置を参照して、以前に考慮したクエリー・リスト関数について説明してください.
[2番目のプロジェクト][宿泊プラットフォーム]Query Stringへの悩み(1)-クエリー、どのように管理しますか?
昔はただ?&=データムとして、文字列をオブジェクトに切り取るか、クエリー・リストに結合して使用します.
しかし、プロジェクト終了後に再梱包を行う場合は、積極的にURLSearchParamsを使って再作成してみてはいかがでしょうか.という考えが生まれた.
理由は. URLSearchparamsは、パラメータのキー、値を効率的に管理できます. は多様な方法でパラメータを管理し、拡張性が良い. 考えがあったからです.
Nav Barボタンをクリックして表示されるモードウィンドウで、領域と期間を選択すると、選択した期間が適用され、検索されたリストページに移動します.クエリーも使用できます.
選択した時間は検索ページに移動し、urlからクエリーリストに移動します.
すなわち,クエリはutil関数の重要な構成部分である.
プロジェクトが終わった今、このutil関数を再考します.
前回の配置を参照して、以前に考慮したクエリー・リスト関数について説明してください.
[2番目のプロジェクト][宿泊プラットフォーム]Query Stringへの悩み(1)-クエリー、どのように管理しますか?
昔はただ?&=データムとして、文字列をオブジェクトに切り取るか、クエリー・リストに結合して使用します.
しかし、プロジェクト終了後に再梱包を行う場合は、積極的にURLSearchParamsを使って再作成してみてはいかがでしょうか.という考えが生まれた.
理由は.
const paramsString = "q=URLUtils.searchParams&topic=api&topic='wow'";
const searchParams = new URLSearchParams(paramsString);
const parseQueryIntoObject = (querystring) => {
const params = new URLSearchParams(querystring);
const obj = {};
for (const key of params.keys()) {
if (params.getAll(key).length > 1) {
obj[key] = params.getAll(key);
} else {
obj[key] = params.get(key);
}
}
return obj;
};
const makeQueryStringFromObject = (object) => {
const result = [];
for (let [k, v] of Object.entries(object)) {
if (Array.isArray(v)) {
result.push(...v.map((el) => `${k}=${el}`));
} else {
result.push(`${k}=${v}`);
}
}
return '?' + result.join('&');
};
可用性は次のとおりです.小分隊テストも行った.
describe('utils.js 파일', () => {
describe('parseQueryIntoObject 함수 테스트', () => {
test('파라미터가 check_in=2022-02-13&check_out=2022-02-23이면 { check_in: 2022-02-13, check_out: 2022-02-23 }', () => {
expect(parseQueryIntoObject("?check_in=2022-02-13&check_out=2022-02-23")).toEqual({ check_in: '2022-02-13', check_out: '2022-02-23' })
})
})
describe('makeQueryStringFromObject 함수 테스트', () => {
test('인자가 { check_in: 2022-02-13, check_out: 2022-02-23 }라면 check_in=2022-02-13&check_out=2022-02-23 반환', () => {
expect(makeQueryStringFromObject({ check_in: '2022-02-13', check_out: '2022-02-23' })).toBe('?check_in=2022-02-13&check_out=2022-02-23')
})
})
})
Reference
この問題について(質問の問合せ-util関数とテストユニットの作成), 我々は、より多くの情報をここで見つけました https://velog.io/@gygy/쿼리스트링에-대한-고민テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol