是否有针对轻元素的状态管理解决方案?

时间:2019-08-08 09:59:27

标签: polymer lit-element

如果存在一个应从数组呈现的列表,则该数组将从grand-grand-grand-grand-grand-parent定制元素传递。那会很烦人。

lit-element一样,redux是否有全局状态管理解决方案?

2 个答案:

答案 0 :(得分:4)

litElement是一个库,您可以使用任何库进行所需的状态管理。只需在构造函数或connectedCallback中订阅商店(在断开连接的Callback中取消订阅),并在商店通知您更改时更改组件属性。

这里有一些与litElement一起使用的PWA帮助器,而Redux有一个。

https://github.com/Polymer/pwa-helpers

答案 1 :(得分:0)

是的,请检出LitState(npm软件包名称lit-element-state)。

我专门为LitElement创建了这个。它具有相同的心态:简单,小型和强大。

由于它是专门为LitElement创建的,因此集成得很好,因此用法非常简单。您可以这样创建一个状态对象:

import { LitState, stateVar } from 'lit-element-state';

class MyState extends LitState {
    myCounter = stateVar(0); // `0` is the default value
}

export const myState = new MyState();

然后您可以像下面这样在组件中使用状态:

import { LitStateElement } from 'lit-element-state';
import { html } from 'lit-element';
import { myState } from './my-state.js';

class MyComponent extends LitStateElement {

    render() {
        return html`
            <h1>Counter: ${myState.counter}</h1>
            <button @click=${() => myState.counter++}></button>
        `;
    }

}

当您的组件从LitStateElement而不是LitElement扩展时,它们会在使用任何stateVar进行更改时自动重新呈现。