当前位置: 首页 > 软件库 > 程序开发 > >

ember-render-helpers

授权协议 MIT License
开发语言 JavaScript
所属分类 程序开发
软件类型 开源软件
地区 不详
投 递 者 闻人思聪
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

ember-render-helpers

CI

@ember/render-modifiers as template helpers:{{did-insert}}, {{did-update}}, {{will-destroy}}

The original idea came from this Pre-RFC.

Installation

ember install ember-render-helpers

Usage

Example

Clicking the Toggle button will toggle the isVisible flag. When it switchesto true, onDidInsert will be called, because the {{did-insert}} helper isinserted. When it switches to false, onWillDestroy will be called, becausethe {{will-destroy}} helper is removed.

Clicking the Random button will set randomValue to a new random value. Everytime this happens, while isVisible is true, onDidUpdate will be called,because one of the parameters passed to the {{did-update}} helper was updated.

Clicking the Random button does not cause {{did-insert}} or{{will-destroy}} to call onDidInsert and onWillDestroy, since thesehelpers are not triggered by parameter updates.

{{#if this.isVisible}}
  {{did-insert   this.onDidInsert   1 2 3 this.randomValue foo="bar" qux="baz"}}
  {{will-destroy this.onWillDestroy 1 2 3 this.randomValue foo="bar" qux="baz"}}
  {{did-update   this.onDidUpdate   1 2 3 this.randomValue foo="bar" qux="baz"}}
{{/if}}

<button {{on "click" this.toggleVisibility}}>Toggle</button>
<button {{on "click" this.rollTheDice}}>Random</button>
import { action } from '@ember/object';
import Component from '@glimmer/component';
import { tracked } from '@glimmer/tracking';

export default class extends Component {
  @tracked isVisible = false;

  @tracked randomValue?: number;

  @action
  toggleVisibility() {
    this.isVisible = !this.isVisible;
  }

  @action
  rollTheDice() {
    this.randomValue = Math.random();
  }

  @action
  onDidInsert(positional: unknown[], named: Record<string, unknown>) {
    console.log({ positional, named });
    // => { positional: [1, 2, 3, 0.1337...], named: { foo: 'bar', qux: 'baz' } }
  }

  @action
  onWillDestroy(positional: unknown[], named: Record<string, unknown>) {
    console.log({ positional, named });
    // => { positional: [1, 2, 3, 0.1337...], named: { foo: 'bar', qux: 'baz' } }
  }

  @action
  onDidUpdate(positional: unknown[], named: Record<string, unknown>) {
    console.log({ positional, named });
    // => { positional: [1, 2, 3, 0.1337...], named: { foo: 'bar', qux: 'baz' } }
  }
}
 相关资料
  • 在提供的 container 里通过指定的 Driver 渲染一个 Rax 元素,并返回该根组件的实例。如果提供了可选的回调函数,该回调将在组件被渲染或更新之后被执行。 注意当首次调用 render 时,会将容器节点里的所有 DOM 元素都替换掉,后续调用时则进行高效更新处理。 方法 render(element, container, options, [callback]) 参数 elemen

  • 描述 (Description) 它包含用于呈现构建视图的模板的逻辑。 语法 (Syntax) view.render() 例子 (Example) <!DOCTYPE html> <html> <head> <title>View Example</title> <script src = "https://code.jquery.com/jquery-2.1.3

  • 类型:(createElement: () => VNode) => VNode 详细: 字符串模板的代替方案,允许你发挥 JavaScript 最大的编程能力。该渲染函数接收一个 createElement 方法作为第一个参数用来创建 VNode。 如果组件是一个函数组件,渲染函数还会接收一个额外的 context 参数,为没有实例的函数组件提供上下文信息。 Vue 选项中的 render 函数

  • f-render 是专为 vue-ele-form 开发的可视化表单设计工具, 让表单开发的效率更上一层楼! 支持本地启动,告别被墙 所有表单组件属性都可点选,告别不完整的体验 持久化存储,告别刷新就没的尴尬 界面效果:

  • 描述 把模版渲染到 DOM 中: m.render(document.body, "hello") // <body>hello</body> 签名 m.render(element, vnodes) 参数 类型 是否必需 描述 element Element 是 一个 DOM 元素,vnode 会被渲染到该元素内。 vnodes Array|Vnode 是 需要渲染的 vnode 返回 返回 u

  • Nuxt.js允许您自定义渲染页面的运行时选项 bundleRenderer 类型: Object 使用此选项可自定义vue SSR渲染器。spa模式会跳过此选项。 export default { render: { bundleRenderer: { directives: { custom1 (el, dir) { // somet