#javascript
#javascript
Вопрос:
Допустим, у меня есть 50 функций в моем проекте. 10 из этих функций являются стандартными функциями, в то время как 40 функций должны:
- Делают свою уникальную вещь
- Затем выполните еще одну вещь, идентичную для всех 40 функций (например, подготовьте некоторые визуальные данные для цикла рендеринга)
В качестве примера, написанного в синтаксисе js:
const functionOne = () => {
//Do my thing
prepareRenderData()
}
const functionTwo = () => {
//Do my thing
prepareRenderData()
}
const functionThree...
Есть ли в JavaScript метод, в котором я могу сделать этот вызов prepareRenderData неявным в функции, что в конечном итоге сэкономит до 40 строк кода в этом случае?
Комментарии:
1. да, вместо вызова этой функции в каждом компоненте вы можете вызвать эту функцию в своем корневом компоненте и сохранить ее данные в context или redux store для их использования. и у react есть плюс для загрузки компонента с помощью отложенной загрузки, поэтому лучший способ — вызвать функцию в определенном компоненте, чтобы ускорить работу приложения.
2. Во-первых, это не синтаксис React, а стандартный JS, во-вторых, вы могли бы использовать декораторы, но тогда вам нужно назначить их или thirs , вы запустили prepareRenderData после вызова этих функций. Но нет неявного вызова функций.
Ответ №1:
Не уверен, что вам следует идти на это из-за потенциальной экономии 40 строк кода, но это достижимо с помощью такой функции-оболочки:
const getPreparedFunction = (fn) => {
return () => {
fn();
console.log('General stuff is happening');
};
}
const functionOne = getPreparedFunction(() => {
console.log('I am functionOne');
});
const functionTwo = getPreparedFunction(() => {
console.log('I am functionTwo');
});
functionOne();
functionTwo();
Если вам нужны функции для получения параметров и возврата материала, вы можете изменить getPreparedFunction
на:
const getPreparedFunction = (fn) => {
return (...args) => {
const result = fn(...args);
console.log('General stuff is happening');
return resu<
};
};