zoukankan      html  css  js  c++  java
  • Omi框架学习之旅

    这个demo是通过omi-id来获取子类的实例,然后更改data属性,之后updata一下就好了。

    老规矩:先上demo代码, 然后提出问题, 之后解答问题, 最后源码说明。

            class Hello extends Omi.Component {
                constructor(data) {
                    super(data);
                }
    
                style() {
                    return `
                        h1 {
                            cursor: pointer;
                        }
                    `;
                }
    
                handleClick(target, click) {
                    console.log(target.innerHTML);
                }
    
                render() {
                    return `
                        <div>
                            <h1 onclick="handleClick(this, event)">
                                Hello, {{name}}!
                            </h1>
                        </div>
                    `;
                }
            };
    
            Omi.makeHTML('Hello', Hello);
    
            class App extends Omi.Component {
                constructor(data) {
                    super(data);
                }
    
                installed() {
                    Omi.get('hello').data.name = 'Sorrow.X';    // get方法是Omi上的一个静态方法
                    this.update();
                }
    
                
    
                render() {
                    return `
                        <div>
                            <Hello omi-id="hello" />   
                        </div>
                    `;
                }
            };
    
            var app = new App();
            Omi.render(app, 'body');

    结果也一样哈

    demo的疑问和疑问的说明:

    疑问1:

    <Hello omi-id="hello" />中的omi-id是什么鬼?对应的hello又是什么鬼?

    答:

          都是好鬼,而且都是女鬼。

          omi-id呢,其实会把它对应的属性值就是hello,hello其实就是 Hello类的实例,然后呢就把 hello: Hello实例,放到了Omi.mapping = {};这个对象去了。

          我们怎么取出实例呢,通过omi的静态get方法即可。

        Omi.get = function(name){
            return Omi.mapping[name]
        }

          来看看怎么实现的,如下

    在这里给我们添加进Omi.mapping中的

    然后就这么拿到了。

    再然后女鬼就是你的了。

    ps: 

        omi-id,是我个人比较喜欢的,因为可以跨组件拿到实例,然后想干嘛就干嘛,爽歪歪。

  • 相关阅读:
    5.Hibernate实现全套增删改查和ajax异步分页
    3、Hibernate三态间的转换
    0. Java开发中的23种设计模式详解(转)
    4、Hibenrate中HQL的10中查询方式
    1.Hibernate框架核心组件 (转自冯岩)
    VB 进制转换大全
    详解 CSS 属性
    HTML5开发规范
    在 Windows 7 環境安裝 Python 2.6.6
    IBM开发者 JSON 教程
  • 原文地址:https://www.cnblogs.com/sorrowx/p/6606051.html
Copyright © 2011-2022 走看看