Skip to content

js2me/mobx-wouter

Repository files navigation

logo

mobx-wouter

NPM version test status build status npm download bundle size

MobX integration with Wouter

What package has

Simple ViewModel wrapper for pages

Usage:

import { PageViewModelBase } from 'mobx-wouter';

class HomePageVM extends PageViewModelBase<{ pathParam: string }> {
  @observable
  accessor value = 'value';

  mount() {
    super.mount();
    document.title = 'Home';
    // do something
  }
}

HOC for integration PageViewModel with view component of React

Usage:

import { ViewModelProps } from 'mobx-view-model';  
import { withPageViewModel } from 'mobx-wouter';

const HomePageView = observer(({ model }: ViewModelProps<HomePageVM>) => {
  return <div>{`render value - ${model.value}`}</div>
})

export const HomePage = withPageViewModel(HomePageVM)(HomePageView);

Same as withPageViewModel() but with lazy loading view and view model

Router for client navigation

Exports from mobx-location-history

Usage

import { MobxRouter, MobxLocation, MobxHistory, QueryParams } from "mobx-wouter";

const router = new MobxRouter({
  history: //, new MobxLocation()
  location: //, new MobxHistory()
  queryParams: //, new QueryParams(),
  abortSignal: //
})

About

MobX integration with Wouter

Resources

License

Stars

Watchers

Forks

Packages

No packages published