Я создаю файл constants.js
с URL-адресами, используемыми в моем проекте ReactJS. Эти строки включают параметры запроса, которые можно использовать с URL. Однако значения, используемые в этих строках, доступны только в компоненте, где используется строка, а не в файле констант. Так, например, я хочу что-то вроде этого:
export const BASE_URL = 'https://example.com';
export const FOO_QUERY = '?foo=%s';
где %s
является просто заполнителем, который может быть заменен позже в компоненте. (Я использовал синтаксис printf()
C здесь для иллюстративных целей.) Каков правильный синтаксис, чтобы сделать что-то подобное в JavaScript? Возможно ли это?
Я бы, вероятно, использовал литерал шаблона в функции: компонент вызывает функцию с значением foo
:
export const fooQuery = foo => '?foo=${foo}';
Использование:
const query = fooQuery("foo value");
С помощью меток-шаблонов вы можете:
function query(parts, ...pos) {
return apply(...args) {
return parts.map((part, i) => part + args[ pos[i] ]).join("");
}
}
Используется как:
const find = query'?name=${0}&fullname=${0}&age=${1}';
console.log(find("jonas", 18));
let string = 'bar';
console.log("Foo %s", string);
var teststr = (string) => 'Foo ${string}'; //result: Foo bar