SkillAgentSearch skills...

Rice

📦 Out-of-box micro-frontends solution

Install / Use

/learn @qddegtya/Rice
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<h1 align="center"> <br> <img width="128" src="media/logo.png" alt="Rice"> <br> <br> <br> </h1>

About

📦 out-of-box micro-frontends solution

lerna

Introduction

🍩 🎉 😊 Let's eat some food

Runtime Core

Define App component with "sidecar"

// index.js
import { connect } from "@arice/core";
import UserInfo from "./UserInfo";
import effects from "./effects";

function App({ dispatch, provide }) {
  provide('App')({
    openPage: page => {
      openPage(page)
    }
  });

  return <Layout>
    <UserInfo />
    <Footer onClick={() => dispatch('logout')}></Footer>
  </Layout>;
}

export default connect({ effects })(App);

// effects.js
export default ({ $, inject }) => {
  const service = inject({
    'userInfo': '@component/UserInfo'
  });

  $('logout').subscribe(() => {
    service.userInfo.logout();
  });
})

Define UserInfo component with "sidecar"

// index.js
import { useState } from 'react';
import { connect } from "@arice/core";
import effects from "./effects";

function UserInfo({ dispatch, provide }) {
  const [user, setUser] = useState('');

  provide('UserInfo')({
    logout: () => {
      logoutService.call();
    }
  });

  return <div/>
    <span>{user}<span>
    <Link onClick={url => dispatch('openPage', url)} title="open user detail page" />
  </Link>;
}

export default connect({ effects })(UserInfo);

// effects.js
export default ({ $, inject }) => {
  const service = inject({
    'app': '@component/app'
  });

  $('logout').subscribe(() => {
    service.app.openPage();
  });
})

Start

import Rice from "@arice/core";
import App from "./App.jsx";

const app = Rice();

app.load(() => <App />);

app.start("#container");
View on GitHub
GitHub Stars7
CategoryDevelopment
Updated3y ago
Forks2

Languages

JavaScript

Security Score

75/100

Audited on Feb 14, 2023

No findings