Option Object Parameter
composable을 정의할 때 전달할 인자들은 다음과 같이 구분할 수 있습니다.
- required 인자들 : 그냥 타입과 함께 전달합니다.
- optional 인자들 : 객체(option object)로 전달합니다.
함수의 인자를 객체로 전달하는 방식의 장점들은 다음과 같습니다.
- 인자들의 순서를 기억할 필요가 없습니다.
- 길게 인자들을 작성하는 것보다 가독성이 좋아집니다.
- 새로운 인자들을 추가하기 쉬워집니다.
여기서 객체로 전달된 optional 인자들의 default 값은 composable 내부에서 지정해야 합니다.
js
export function useMouse(options) {
const { asArray = false, throttle = false } = options;
// ...
}
dynamic returns
위의 option obejct parameter를 이용하면 원하는 정보만 return하도록 만들 수도 있습니다.
js
export default useComposable(input, options) {
// 1. Add in the `controls` option
const { controls = false } = options;
// ...
// 2. Either return a single value or an object
return controls ? { singleValue, anotherValue, andAnother } : singleValue;
}