프론트엔드: 만약 당신이 !(love(Mithril)) 그렇다면 또 무엇입니까?
다음 예제에서는 Sinuous와 Mergerino로 감수분열 패턴을 구현해 보았습니다.
나는 Sinuous에 정말 감동했다고 말해야합니다.
"가벼움"을 테스트하려면 여기를 보십시오: Sinuous
const o = sinuous.o // observable :-)
const html = sinuous.html
const map = sinuous.map
const merge = mergerino //enhanced Object.assign
// Here we observe an array, I have tried to observe the
// object directely with no success
// So we have to "map" on state to retrieve the object
// Look at the App function below
let state = o([
{
nom: "Albert",
age: 58,
points: 100
}
]);
// Little helper
state.merge = function (patch) {
//not very friendly but handy
//'this' refers to 'state'
let current = this()[0]
let newstate = merge(current, patch)
state([newstate])
}
// mergerino accepts functions for updating properties
// very handy
let actions = {
incPoints : () => state.merge({
points : p => p + 1
}),
incAge : () => state.merge({
age: (a) => a + 1
})
}
// The view is a function of the state.
// All the actions are centralized in a unique object
function view(s) {
return html`
<div>
Hello <strong>${s.nom}</strong>,
you are <strong>${s.age}</strong> years old and have
<strong>${s.points}</strong> points
</div>
<p>
<button onclick=${actions.incPoints}>Inc Points</button>
<button onclick=${actions.incAge}>Inc Age</button>
</p>
`
}
const App = function () {
return html`${map(state, view)}`
}
document.querySelector('.app')
.append(App());
여기에서 테스트할 수 있습니다sinuousmeiosis.
Reference
이 문제에 관하여(프론트엔드: 만약 당신이 !(love(Mithril)) 그렇다면 또 무엇입니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/artydev/frontend-if-love-mithril-then-what-else-51n2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)