Produce By Path - 새로운 JavaScript 디자인 패턴
설명
Produce By Path 적용된 경로를 이용하여 값을 동적으로 생성하기 위해 사용하는 디자인 패턴입니다.
설치
npm install produce-by-path
용법
import ProduceByPath from "produce-by-path"
// CommonJS usage
// const ProduceByPath = require("produce-by-path")
// define producer instance to our liking :)
const instance = new ProduceByPath({
call: (path, args) => {
return ({
path,
args,
})
},
toPrimitive: (path, hint) => {
return path.join("--")
}
})
// Now we can apply the [[instance]] object with any properties
// combination and call as a function and receive the desired
// result as we defined in the [[call]] handler.
console.log( instance.I.love.you("arg1", "arg2") )
// {
// path: ["I", "love", "you"],
// args: ["arg1", "arg2"]
// }
// We can also apply the [[instance]] object with any properties
// combination and convert as a primitive value and receive
// the desired result as we defined in [[toPrimitive]] handler.
console.log( String(instance.I.love.you) )
// I--love--you
console.log( instance.I.love.you + '')
// I--love--you
ProduceByPath 패턴을 사용해야 하는 이유는 무엇입니까?
경우에 따라 해당 패턴을 사용하여 내 소프트웨어에 대한 간단하고 직관적인 인터페이스를 구축할 수 있습니다.
예를 들어, redux-cool 라이브러리는 작업 개체를 만들기 위해 해당 패턴을 사용합니다.
import {actionsCreator} from "redux-cool"
const first_action = actionsCreator.MY.FIRST.ACTION("arg1", "arg2")
console.log(first_action)
// {
// type: "MY/FIRST/ACTION",
// args: ["arg1", "arg2"],
// cb: f() identity,
// _index: 1
// }
const second_action = actionsCreator.This.is.my.second.action(2021)
console.log(second_action)
// {
// type: "This/is/my/second/action",
// args: [2021],
// cb: f() identity,
// _index: 2
// }
// If we just need to generate an action type as a string,
// we can do it easily
const type1 = String(actionsCreator.MY.FIRST.ACTION)
console.log(type1)
// "MY/FIRST/ACTION"
// or any string conversion
const type2 = actionsCreator.MY.FIRST.ACTION + ""
console.log(type2)
// "MY/FIRST/ACTION"
연결
npm
github
redux-cool actionsCreator
Reference
이 문제에 관하여(Produce By Path - 새로운 JavaScript 디자인 패턴), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/rubenarushanyan/produce-by-path-new-javascript-design-pattern-8in텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)