Hu.js 是什么

Hu 是一套用于构建用户界面的渐进式框架, 基于 Web Components 和 Proxy 的 MVVM 框架, 使用了和 Vue 相似的 API, 大大减少了学习成本, 定义的组件可以在任何类库及框架中使用, 便于与第三方库或既有项目整合

声明式渲染

Hu.js 的核心是一个采用直观的模板字面量来声明式地将数据渲染进 DOM 的系统

<div id="app-1"></div>
var app = new Hu({
  el: '#app-1',
  data: {
    message: 'Hello Hu !'
  },
  render( html ){
    return html`<p>${ this.message }</p>`;
  }
});

我们已经成功创建了第一个 Hu 应用 ! Hu 在背后做了大量工作, 现在数据和 DOM 已经被建立了关联, 所有东西都是响应式的, 我们要怎么确认呢? 打开你的浏览器的 JavaScript 控制台 ( 就在这个页面打开 ), 并修改 app.message 的值, 你将看到上例相应地更新

除了文本插值, 我们还可以像这样来绑定元素特性

<div id="app-2"></div>
var app2 = new Hu({
  el: '#app-2',
  data: {
    message: `页面加载于 ${ ( new Date ).toLocaleString() }`
  },
  render( html ){
    return html`
      <div title=${ this.message }>
        鼠标悬停几秒钟查看此处动态绑定的提示信息 !
      </div>
    `;
  }
});

你可能发现了, 不管是文本内容还是元素属性, 都是通过 ${ .. } 插值的方式进行绑定的, 这就是基于模板字面量的特性