在Mithril中创建新组件时,vnode.attrs.value
和vnode.state.value
之间有什么区别?
答案 0 :(得分:4)
如documentation中所述:
重绘之间持久存在的对象。它由提供 需要时核心引擎。在POJO组件vnodes中,状态继承 原型来自组件对象/类。在类组件中 vnodes它是类的一个实例。在封闭组件中它是 闭包返回的对象。
DOM属性,事件,属性和生命周期方法的散列图。
例如,看看这段代码。
require 'fcm'
fcm = FCM.new(server_key) # Find server_key on: your firebase console on web > tab general > web api key
registration_ids= [device_keys] # Array of keys generated by firebase for devices
options = {
priority: "high",
collapse_key: "updated_score",
notification: {
title: "Message Title",
body: "Hi, Worked perfectly",
icon: "myicon"}
}
response = fcm.send(registration_ids, options)
输出将显示状态是从组件构造函数初始化的。相反,attrs是从m()传递的。
通常,在上下文中使用attrs时,可以使用attrs将数据传递给对象(例如,将URL传递给组件以进行ajax使用)。而是使用state来跨重绘来保存组件的本地数据(例如,重置purpouse的字段初始状态)