lit-element 可以跟踪其范围之外的变量吗
Can a lit-element track a variable outside its scope
在我的 lit-element 中,我根据外部变量渲染了一些东西。我怎么知道该变量更改时要更新?
import { LitElement, html } from 'lit-element';
import './element01.js';
class Layout extends LitElement {
createRenderRoot(){ return this; }
static get properties() {
return {
settings: { Object }
};
}
constructor() {
super();
}
render() {
return html`
${(settings.foo === 'bar')? html`<my-element01 />` : null}
`;
}
}
customElements.define('my-layout', Layout);
外面正在修改设置对象,这个元素怎么知道要更新?我没有使用任何其他框架。
这是我试图说明的一个例子。 settings
属性 在 litElement 之外更改并在 litElement 中生效。
index.html
...
<my-layout></my-layout>
<br>
<button onClick="_buttonClicked()" >change the settings value</button>
<script>
document.querySelector('my-layout').settings={foo:"bar"};
function _buttonClicked (e) {
document.querySelector('my-layout').settings = {foo:"baz"};
}
</script>
我的布局:
import { LitElement, html } from 'lit-element';
//import './element01.js';
class Layout extends LitElement {
createRenderRoot(){ return this; }
static get properties() {
return {
settings: { Object }
};
}
constructor() {
super();
}
render() {
return html`
${this.settings.foo === 'bar'? html`<span> element01 will be rendered</span>` : null}
`;
}
}
customElements.define('my-layout', Layout)
- 我做了一些语法更正
index.html 文件应该总是有一个
<my-app></my-app>
在 my-app 元素中,您将能够使用 litElement 的所有功能,例如
class MyApp extends LitElement {
static get properties() {
return {
prop: {type: Object},
};
}
render() {
return html`
<my-element .prop="${this.prop}"</my-element>
<my-server .prop="${this.prop}"</my-server>
<button @onClick='${(e) => this.prop += 1}' >change the settings value</button>
`;
}
}
在我的 lit-element 中,我根据外部变量渲染了一些东西。我怎么知道该变量更改时要更新?
import { LitElement, html } from 'lit-element';
import './element01.js';
class Layout extends LitElement {
createRenderRoot(){ return this; }
static get properties() {
return {
settings: { Object }
};
}
constructor() {
super();
}
render() {
return html`
${(settings.foo === 'bar')? html`<my-element01 />` : null}
`;
}
}
customElements.define('my-layout', Layout);
外面正在修改设置对象,这个元素怎么知道要更新?我没有使用任何其他框架。
这是我试图说明的一个例子。 settings
属性 在 litElement 之外更改并在 litElement 中生效。
index.html
...
<my-layout></my-layout>
<br>
<button onClick="_buttonClicked()" >change the settings value</button>
<script>
document.querySelector('my-layout').settings={foo:"bar"};
function _buttonClicked (e) {
document.querySelector('my-layout').settings = {foo:"baz"};
}
</script>
我的布局:
import { LitElement, html } from 'lit-element';
//import './element01.js';
class Layout extends LitElement {
createRenderRoot(){ return this; }
static get properties() {
return {
settings: { Object }
};
}
constructor() {
super();
}
render() {
return html`
${this.settings.foo === 'bar'? html`<span> element01 will be rendered</span>` : null}
`;
}
}
customElements.define('my-layout', Layout)
- 我做了一些语法更正
index.html 文件应该总是有一个
<my-app></my-app>
在 my-app 元素中,您将能够使用 litElement 的所有功能,例如
class MyApp extends LitElement {
static get properties() {
return {
prop: {type: Object},
};
}
render() {
return html`
<my-element .prop="${this.prop}"</my-element>
<my-server .prop="${this.prop}"</my-server>
<button @onClick='${(e) => this.prop += 1}' >change the settings value</button>
`;
}
}