Mot*_*lal 1 javascript mithril.js
在 Mithril 中创建新组件vnode.attrs.value
和vnode.state.value
在创建新组件时有什么区别?
如文档中所述:
在重绘之间持久化的对象。它在需要时由核心引擎提供。在 POJO 组件 vnodes 中,状态通常从组件对象/类继承。在类组件 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'})}})
Run Code Online (Sandbox Code Playgroud)
输出将显示状态是从组件构造函数初始化的。attrs 是从 m() 传递过来的。
通常,在上下文中使用数据时,您可以使用 attrs 将数据传递给对象(例如,将 URL 传递给组件以供 ajax 使用)。而是使用状态在重绘期间保留组件的本地数据(例如用于重置目的的字段初始状态)
归档时间: |
|
查看次数: |
1166 次 |
最近记录: |