最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

阿里低代碼框架lowcode-engine自定義設(shè)置器詳解

 更新時間:2023年02月12日 10:09:02   作者:杰出D  
這篇文章主要為大家介紹了阿里低代碼框架lowcode-engine自定義設(shè)置器示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

前言

之前介紹了lowcode-engine引擎的自定義物料。在具體實際開發(fā)過程中,雖然官方提供了許多設(shè)置器,但可能滿足不了我們的需要,需要我們自定義設(shè)置器。

官方腳手架設(shè)置器開發(fā)

設(shè)置器主要用于低代碼組件屬性值的設(shè)置,顧名思義叫"設(shè)置器",又稱為 Setter。由于組件的屬性有各種類型,需要有與之對應(yīng)的設(shè)置器支持,每一個設(shè)置器對應(yīng)一個值的類型。

項目初始化

  • lowcode官方給我們提供了腳手架,我們通過腳手架可以快速創(chuàng)建
npm init @alilc/element lowcode-app-material  // lowcode-app-material項目名稱
  • 我們選擇物料【組件設(shè)置器(setter)】類型。確認(rèn)

  • 安裝依賴,啟動調(diào)試環(huán)境
npm & yarn install

安裝好依賴之后,就可以啟動開發(fā)環(huán)境

yarn dev

開發(fā)自己的設(shè)置器

import * as React from "react";
import { Input } from "@alifd/next";
import "./index.scss";
interface AltStringSetterProps {
  // 當(dāng)前值
  value: string;
  // 默認(rèn)值
  initialValue: string;
  // setter 唯一輸出
  onChange: (val: string) => void;
  // AltStringSetter 特殊配置
  placeholder: string;
}
export default class AltStringSetter extends React.PureComponent<AltStringSetterProps> {
  componentDidMount() {
    const { onChange, value, defaultValue } = this.props;
    if (value == undefined && defaultValue) {
      onChange(defaultValue);
    }
  }
  // 聲明 Setter 的 title
  static displayName = 'AltStringSetter';
  render() {
    const { onChange, value, placeholder } = this.props;
    return (
      <Input
        value={value}
        placeholder={placeholder || ""}
        onChange={(val: any) => onChange(val)}
      ></Input>
    );
  }
}

使用設(shè)置器

開發(fā)完畢之后,需發(fā)包或者通過link的方式使用AltStringSetter 到設(shè)計器中:

import AltStringSetter from 'AltStringSetter';
import { setters } from '@alilc/lowcode-engine';
const { registerSetter } = registerSetter;
registerSetter('AltStringSetter', AltStringSetter);

在物料庫內(nèi)設(shè)置器開發(fā)

上面我們介紹了單獨去開發(fā)設(shè)置器,需發(fā)包后注冊到引擎中使用。還有一種情況一些設(shè)置器是跟隨組件,為組件使用,不需要共享,我們可以直接可以在物料庫中開發(fā)設(shè)置器。

設(shè)置器開發(fā)

之前我們介紹過通過官方物料庫腳手架去開發(fā)組件。組件在編譯完成之后會在根目錄生成lowcode文件夾,里面的內(nèi)容為組件的meta信息。

我們可以在當(dāng)前目錄創(chuàng)建_setter文件夾,來開發(fā)我們的setter,setter開發(fā)方式按官方文檔去開發(fā)。在這里,我們開發(fā)了一個DefaultValueSetter(默認(rèn)值setter)。

import React, { createElement } from 'react';
import { Switch, Select, Input, Button, } from '@alifd/next';
import { event } from '@alilc/lowcode-engine';
import './style.less';
const Option = Select.Option;
export interface DefaultValueSetterProps {
  fieldType: 'input' | 'textarea' | 'number',
  onChange: (value) => void;
  value: IValue
}
export interface DefaultValueSetterState {}
export class DefaultValueSetter extends React.Component<DefaultValueSetterProps, DefaultValueSetterState> {
  static displayName = 'DefaultValueSetter';
  constructor(props) {
    super(props);
    this.state = {
    };
  }
  componentDidMount(): void {
    event.on(EDefaultValueSetterEventName.ValueChange, this.formulaValueChange)
  }
  // ...省略部分代碼
  handleValueTypeChange = (valueType) => {
    const { onChange, value } = this.props;
    onChange({
      ...value,
      valueType
    });
  }
  handleValueChange = (currValue) => {
    const { onChange, value } = this.props;
    const newVale = {
      ...value,
      value: currValue,
    };
    onChange(newVale);
  }
  render() {
    const { fieldType, value } = this.props;
    console.log('value, defaultValue', value, this.props)
    return (<div className="lowcode-setter-ui-material-setter">
      <Select style={{ width: '100%', marginBottom: 10 }} value={value?.valueType} onChange={this.handleValueTypeChange}>
        <Option value='1'>自定義</Option>
        <Option value='2'>公式編輯</Option>
      </Select>
      {this.getItem()}
    </div>)
  }
}

使用設(shè)置器

設(shè)置器開發(fā)完成后,我們可以在組件的meta.ts中使用剛剛開發(fā)的設(shè)置器。

  {
        "title": {
          "label": {
            "type": "i18n",
            "en-US": "format",
            "zh-CN": "默認(rèn)值"
          }
        },
        "name": "defaultValue",
        "setter": {
          "componentName": DefaultValueSetter, //默認(rèn)值設(shè)置器
          "props": {
            "fieldType": 'input'
          },
          "isRequired": false,
          "initialValue": {
            valueType: '1',
            value: "",
          }
        }
      },

工程目錄結(jié)構(gòu)為

結(jié)束語

以上就是設(shè)置器的開發(fā)和使用。后續(xù)我們介紹一下基于lowcode引擎做出的一個完整的案例,更多關(guān)于lowcode-engine自定義設(shè)置器的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • React如何利用相對于根目錄進行引用組件詳解

    React如何利用相對于根目錄進行引用組件詳解

    這篇文章主要給大家介紹了關(guān)于React如何使用相對于根目錄進行引用組件的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-10-10
  • react實現(xiàn)導(dǎo)航欄二級聯(lián)動

    react實現(xiàn)導(dǎo)航欄二級聯(lián)動

    這篇文章主要為大家詳細介紹了react實現(xiàn)導(dǎo)航欄二級聯(lián)動,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 詳解React中合并單元格的正確寫法

    詳解React中合并單元格的正確寫法

    用表格進行頁面布局,頁面布局在各種瀏覽器的的兼容性, 本文主要介紹了詳解React中合并單元格的正確寫法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • React Router 用法詳細介紹

    React Router 用法詳細介紹

    React Router 是 React 中用于處理頁面導(dǎo)航和路由的工具,它使用 HTML5 History API 或 URL 的哈希部分進行路由管理,本文介紹React Router 用法詳細講解,感興趣的朋友一起看看吧
    2025-01-01
  • 深入了解響應(yīng)式React Native Echarts組件

    深入了解響應(yīng)式React Native Echarts組件

    近年來,隨著移動端對數(shù)據(jù)可視化的要求越來越高,通過 WebView 在移動端使用 Echarts 這樣功能強大的前端數(shù)據(jù)可視化庫,是解決問題的好辦法。下面就和小編來一起學(xué)習(xí)一下吧
    2019-05-05
  • 插件化機制優(yōu)雅封裝你的hook請求使用方式

    插件化機制優(yōu)雅封裝你的hook請求使用方式

    這篇文章主要為大家介紹了插件化機制優(yōu)雅封裝你的hook請求使用方式示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • react進階教程之異常處理機制error?Boundaries

    react進階教程之異常處理機制error?Boundaries

    在react中一旦出錯,如果每個組件去處理出錯情況則比較麻煩,下面這篇文章主要給大家介紹了關(guān)于react進階教程之異常處理機制error?Boundaries的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-08-08
  • React進階學(xué)習(xí)之組件的解耦之道

    React進階學(xué)習(xí)之組件的解耦之道

    這篇文章主要給大家介紹了關(guān)于React進階之組件的解耦之道,文中通過詳細的示例代碼給大家介紹了組件分割與解耦的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面跟著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-08-08
  • React中setState/useState的使用方法詳細介紹

    React中setState/useState的使用方法詳細介紹

    這篇文章主要介紹了React中setState/useState的使用方法,useState 和 setState 在React開發(fā)過程中 使用很頻繁,但很多人都停留在簡單的使用階段,并沒有正在了解它們的執(zhí)行機制
    2023-04-04
  • React?中的?JS?報錯及容錯方案

    React?中的?JS?報錯及容錯方案

    這篇文章主要為大家介紹了React?中的?JS?報錯及容錯方案詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08

最新評論

磐安县| 平潭县| 青州市| 临海市| 勐海县| 富蕴县| 孙吴县| 米林县| 安乡县| 乌审旗| 叙永县| 高台县| 天长市| 嵩明县| 新乐市| 太康县| 子洲县| 琼海市| 东港市| 电白县| 家居| 宿迁市| 增城市| 青阳县| 黎平县| 乌兰察布市| 乳山市| 本溪| 扶绥县| 大关县| 乐清市| 龙口市| 仙居县| 鹿邑县| 瓦房店市| 丰县| 鸡西市| 广灵县| 峨山| 贺州市| 新竹市|