Nobukazu Hanada
あるところでは、「サンタさん」というあだ名で呼ばれる事が在ります。 花田 (はなだ) 恒一(のぶかず)と申します。 恒一(こういち)とは読みません。 Lispが好きです。
@nobkz
※Vanilla フレームをワークを使わずに、実装する人たち。大抵フレームワークの設計が適切でないので、自分たちでGUIを設計して作っていく
const model = { /* 内部パラメーター */ };
const views = [];
function modelChange{
// なにか更新処理
notify(model);
}
function view(model){
/* なにか DOMを更新 */
}
views.push(view);
function notify(model){
views.forEach(view=>views(model));
}
view : (model:Model)=> VirtualDOM
const model = { count : 0 };
const views = [];
function countUp{
// なにか更新処理
model.count += 1;
notify(model);
}
function view(model){
if(viewObject.text != model.countup){
viewObject.text = model.countup;
}
}
// ここで通知先もしっかり考える
views.push(view);
function notify(model){
views.forEach(view=>views(model));
}
<script>
let count = 0;
function handleClick() {
count += 1;
}
</script>
<button on:click={handleClick}>
Clicked {count} {count === 1 ? 'time' : 'times'}
</button>
function handleClick() {
/* モデル更新 */
$$invalidate(0, count += 1);
}
/* DOMの更新 */
if (dirty &
t3_value !==
(t3_value = (/*count*/ ctx[0] === 1 ? "time" : "times") + ""))
set_data(t3, t3_value);
function handleClick() {
/* モデル更新 */
count += 1; notify(count);
}
/* DOMの更新 */
if (dirty & /*count*/ 1 &&
old_value !==
(new_value = (count === 1 ? "time" : "times") + ""))
set_data(new_value);
x: 10
y: 10
w: x + y
z: 10
a: z * y
20
200
x: 20
y: 10
w: x + y
z: 10
a: z * y
20
200
x: 20
y: 10
w: x + y
z: 10
a: z * y
30
200
x: 20
y: 10
w: x + y
z: 10
a: z * y
30
300
x = Signal(10);
y = Signal(10);
z = Singal(10);
w <= x + y;
a <= w * a;
let x = 10;
let y = 10;
let z = 10;
$: w = x + y;
$: a = w * a;
By Nobukazu Hanada
あるところでは、「サンタさん」というあだ名で呼ばれる事が在ります。 花田 (はなだ) 恒一(のぶかず)と申します。 恒一(こういち)とは読みません。 Lispが好きです。