0.0.8 • Published 2 years ago

egh v0.0.8

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

USAGE

npm i egh -S

reg resources

// resourceReg.tsx

import {regResource} from 'egh'

import * as modules from '../modules'  
import * as comps from '../compontents'



export default regResource({modules, comps});

rule api design

//api.ts
export const getRuleApi = () => {
    // mock data
    return Promise.resolve({id:'default',Module: 'Module', Comp: 'Comp'})
}

export const getAsyncRuleApi = (params) => {
    // mock data
    return Promise.resolve({id:'default',Module: params.opt == 'A'?'ModuleA':'ModuleB', Comp: 'Comp', ...params})
}

reg rule

// garyResource.tsx

import './resourceReg'
import {getRuleApi, getAsyncRuleApi} from '@/apis'


import {proxyGray, regRule, regAsyncRule, regParseRule} from 'egh'

regRule(getRuleApi)

regAsyncRule(getAsyncRuleApi)

regParseRule((chooseFlag, rule) => {
  return rule[chooseFlag]
})



export default proxyGray

Demo

记得在外层包 Suspense

import React, { useState } from 'react';
import grayResource from '../lib/grayResource'


const Demo = (props) => {

  const { Module } = grayResource.read();

  return (
    <div>
      {Array.from (new Array(10)).map((_, i) => (
        <Module key={i} var="foo" />
      ))}
    </div>
  );
}

Demo with Select

import React, {useState, useEffect} from 'react'
import {boardcast} from 'egh'
import {List,Radio} from 'antd-mobile'

const data = [
    { value: 'A', label: 'testA' },
    { value: 'B', label: 'testB' },
  ];

export default () => {
    const [val, setVal] = useState(0);
    useEffect(() => {
        boardcast.setProvider('opt',val)
    }, [val])

    const onChange = (v) => {
        setVal(v)
    }
    return (
        <List>
            {data.map(i => (
                <Radio.RadioItem key={i.value} checked={val == i.value}  onChange={_=>onChange(i.value)}>
                    {i.label}
                </Radio.RadioItem>
            ))}
        </List>
    )
}
import React, { useState } from 'react';
import grayResource from '../lib/grayResource'


const Demo = (props) => {

  const { Module } = grayResource.read({on: 'opt', dep: Demo});
  // const { Module } = grayResource.read({on: ['opt','opt2'], dep:Demo});
  // const { Module } = grayResource.readAsync({on: 'opt', dep:Demo});

  return (
    <div>
      {Array.from (new Array(10)).map((_, i) => (
        <Module key={i} var="foo" />
      ))}
    </div>
  );
}

COMMING SOON

可视化搭投平台,实现拖拽配置

0.0.8

2 years ago

0.0.7

3 years ago

0.0.6

3 years ago

0.0.5

3 years ago

0.0.3

3 years ago

0.0.4

3 years ago

0.0.2

3 years ago

0.0.1

3 years ago