FrintJS
Published in

FrintJS

Working with Child Apps and Regions in FrintJS

Illustration of a website design

What is a Region?

  • Header: may contain logo and navigation links
  • Footer: more navigation, and copyright information
  • Main: your main content area
  • Sidebar: contextual information based on main area’s content

How does it work?

import React from 'react';
import { Region } from 'frint-react';
export default function Root() {
return (
<div>
<div className="main">
...
</div>
<div className="sidebar">
<Region name="sidebar" />
</div>
</div>
);
}

Register a Child App:

import RootApp from './root-app';
import ChildApp from './child-app';
window.app = new RootApp();window.app.registerApp(ChildApp, {
regions: ['sidebar'],
});

Multiple Child Apps in a single Region:

window.app.registerApp(ChildApp1, {
regions: ['sidebar'],
weight: 5,
});
window.app.registerApp(ChildApp2, {
regions: ['sidebar'].
weight: 10,
});

Passing data via Regions:

import React from 'react';
import { Region } from 'frint-react';
function MyComponent() {
const data = {}; // anything
return (
<div>
<Region name="sidebar" data={data} />
</div>
);
}

Code Splitting

Technique:

Responsibilities from server-side:

<!-- common libraries, like React and FrintJS -->
<script src="./vendors.js"></script>
<!-- our Root App in FrintJS -->
<script src="./root.js"></script>
<!-- dynamically generated list of Child Apps -->
<script src="./child-1.js"></script>
<script src="./child-2.js"></script>
<script src="./child-3.js"></script>

Example

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store