Javascript 米特里尔:vnode.attrs和vnode.state之间的区别
在Mithril中创建新组件时,Javascript 米特里尔:vnode.attrs和vnode.state之间的区别,javascript,mithril.js,Javascript,Mithril.js,在Mithril中创建新组件时,vnode.attrs.value和vnode.state.value之间有什么区别?如中所述: 陈述 在重绘之间持久化的对象。它由 在需要时使用核心引擎。在POJO组件Vnode中,状态继承 原型通常来自组件对象/类。类内组件 vnodes它是类的一个实例。在闭包组件中,它是 由闭包返回的对象 属性 DOM属性、事件、属性和生命周期方法的哈希映射 例如,请查看此代码 class Hello { constructor(height, width
vnode.attrs.value
和vnode.state.value
之间有什么区别?如中所述:
陈述
在重绘之间持久化的对象。它由
在需要时使用核心引擎。在POJO组件Vnode中,状态继承
原型通常来自组件对象/类。类内组件
vnodes它是类的一个实例。在闭包组件中,它是
由闭包返回的对象
属性
DOM属性、事件、属性和生命周期方法的哈希映射
例如,请查看此代码
class Hello {
constructor(height, width) {
this.txt = 'from state'
}
view (vnode) {
console.log(vnode.state)
return m("main", [
m("h1", {class: "title"}, "This come "+vnode.attrs.txt),
m("h1", {class: "title"}, "This come "+vnode.state.txt)
])
}
}
m.mount(root, {view: function () {return m(Hello, {txt: 'from attribute'})}})
输出将显示状态是从组件构造函数初始化的。而是从m()传递属性
通常,在上下文中使用对象时,可以使用attrs将数据传递给对象(例如,将URL传递给组件以供ajax使用)。相反,使用状态在重绘过程中保存组件的本地数据(例如,重置Purpose的字段初始状态)如中所述:
陈述
在重绘之间持久化的对象。它由
在需要时使用核心引擎。在POJO组件Vnode中,状态继承
原型通常来自组件对象/类。类内组件
vnodes它是类的一个实例。在闭包组件中,它是
由闭包返回的对象
属性
DOM属性、事件、属性和生命周期方法的哈希映射
例如,请查看此代码
class Hello {
constructor(height, width) {
this.txt = 'from state'
}
view (vnode) {
console.log(vnode.state)
return m("main", [
m("h1", {class: "title"}, "This come "+vnode.attrs.txt),
m("h1", {class: "title"}, "This come "+vnode.state.txt)
])
}
}
m.mount(root, {view: function () {return m(Hello, {txt: 'from attribute'})}})
输出将显示状态是从组件构造函数初始化的。而是从m()传递属性
一般来说,当在上下文中使用attr时,可以使用attr将数据传递给对象(es.将URL传递给组件以用于ajax)。相反,使用state在重绘过程中保存组件的本地数据(例如,reset purpouse的字段初始状态)