组件通讯
Omi框架组建间的通讯非常遍历灵活,因为有许多可选方案进行通讯:
所以通讯变得畅通无阻,下面一一来举例说明。
data-*通讯(data) () (target() .App (data) () .);
一般data-用来传递值类型,如string、number。值得注意的是,通过data-接收到的数据类型都是string,需要自行转成number类型。
通常情况下,data-能满足我们的要求,但是遇到复杂的数据类型是没有办法通过大量data-去表达,所以可以通过data通讯,请往下看。
如上面代码所示,通过 data-name="Omi"可以把name传递给子组件。下面的代码也可以达到同样的效果。
... (data) .() .);
使用data声明,会去组件的instance(也就是this)下找对应的属性,this下可以挂载任意复杂的对象。所以这也就突破了data-*的局限性。
childrenData通讯... (data) .]() .);
通用this.childrenData传递data给子组件,childrenData是一个数组类型,所以支持同时给多个组件传递data,与render里面的组件会一一对应上。
通过对象实例... (data) ().update() .);
通过omi-id... (data) ().update() .);
通过在组件上声明omi-id,在程序任何地方拿到该对象的实例。这个可以算是跨任意组件通讯神器。
特别强调关于上面的第三条也就是这样的逻辑伪代码:
....data-); }
招募计划