3.2.1 • Published 2 years ago

vivy-async-component v3.2.1

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

vivy-async-component

NPM Version License

A Vivy plugin to load async component and async Vivy model to easily split chunks by route.

Docs

Installation

Using npm:

$ npm install vivy vivy-router vivy-async-component

Examples

Examples in repository

$ cd ./examples/[EXAMPLE_NAME]
$ npm run start

Example names:

Complete and real project example

Documentation

Basic usage

configureRoutes.js

// Import AsyncComponent from plugin
import {AsyncComponent} from 'vivy-async-component';

export default function configureRoutes(store) {
    return [{
        path: '/',
        component: AsyncComponent(() => import('path_to_your_component'), store, [
            () => import('path_to_your_vivy_model_1'),
            () => import('path_to_your_vivy_model_2')
        ])
    }];
}

index.js

import React from 'react';
import {render} from 'react-dom';
import {Provider} from 'react-vivy';
import {createBrowserHistory} from 'history';
import {renderRoutes} from 'react-router-config';

// Import Vivy
import Vivy from 'vivy';

// Import VivyRouter and ConnectedRouter
import VivyRouter, {ConnectedRouter} from 'vivy-router';

// Import 
import VivyAsyncComponent from 'vivy-async-component';

// Routes config
import configureRoutes from 'path_to_your_configure_routes';

// Create browser history
const history = createBrowserHistory();

// Create vivy
const vivy = Vivy();

// Apply router plugin
vivy.use(VivyRouter({
    history
}));

// Apply async component plugin
vivy.use(VivyAsyncComponent());

// Create store after configuration
const store = vivy.createStore();

render(
    <Provider store={store}>
        <ConnectedRouter history={history}>
            {renderRoutes(configureRoutes(store))}
        </ConnectedRouter>
    </Provider>,
    document.getElementById('app-container')
);

Methods

AsyncComponent

AsyncComponent(getComponent, VivyStoreInstance, getModels)

Example:

// Import AsyncComponent from plugin
import {AsyncComponent} from 'vivy-async-component';

export default function configureRoutes(store) {
    return [{
        path: 'route_path',
        component: AsyncComponent(() => import('path_to_your_component'), store, [
            () => import('path_to_your_vivy_model_1'),
            () => import('path_to_your_vivy_model_2')
        ])
    }];
}

Hooks

useAsyncComponent

import {useAsyncComponent} from 'vivy-async-component';

const [asyncComponentLoading, {start, complete}] = useAsyncComponent();

useAsyncComponentLoading

import {useAsyncComponentLoading} from 'vivy-async-component';

const asyncComponentLoading = useAsyncComponentLoading();
3.2.1

2 years ago

2.2.1

2 years ago

2.2.0

2 years ago

3.0.0-alpha.1

2 years ago

3.0.0-alpha.0

2 years ago

2.2.2

2 years ago

3.0.0-alpha.3

2 years ago

3.0.0-alpha.2

2 years ago

3.0.3

2 years ago

3.2.0

2 years ago

3.0.2

2 years ago

2.3.0-alpha.0

2 years ago

3.0.1

2 years ago

2.3.0-alpha.1

2 years ago

3.0.0

2 years ago

2.3.0

2 years ago

2.2.0-alpha.0

2 years ago

2.2.0-alpha.3

2 years ago

2.2.0-alpha.2

2 years ago

2.2.0-alpha.1

2 years ago

3.1.0

2 years ago

2.0.7

3 years ago

2.0.8

3 years ago

2.1.2

3 years ago

2.1.1

3 years ago

2.1.3

3 years ago

2.1.0

3 years ago

2.1.2-alpha.1

3 years ago

2.1.2-alpha.0

3 years ago

2.1.0-alpha.3

3 years ago

2.1.0-alpha.2

3 years ago

2.1.0-alpha.1

3 years ago

2.1.0-alpha.0

3 years ago

2.0.6

3 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago

2.0.4-alpha.1

3 years ago

2.0.4-alpha.2

3 years ago

2.0.4-alpha.0

3 years ago

2.0.3

3 years ago

2.0.2

3 years ago

2.0.5

3 years ago

2.0.4

3 years ago

2.0.0-alpha.0

3 years ago

2.0.4-alpha.5

3 years ago

2.0.4-alpha.6

3 years ago

2.0.4-alpha.3

3 years ago

2.0.4-alpha.4

3 years ago

2.0.4-alpha.9

3 years ago

2.0.4-alpha.7

3 years ago

2.0.1

3 years ago

2.0.4-alpha.8

3 years ago

2.0.0

3 years ago

2.0.4-alpha.10

3 years ago

0.5.2

4 years ago

0.5.0

4 years ago

0.5.1

4 years ago

0.4.0

4 years ago

0.3.0

4 years ago

0.2.1

4 years ago

0.2.0

4 years ago

0.2.3

4 years ago

0.2.2

4 years ago

0.2.4

4 years ago

0.1.1

4 years ago

0.1.0

4 years ago

0.0.5

4 years ago

0.0.4

4 years ago

0.0.3

4 years ago

0.0.2

4 years ago

0.0.1

4 years ago