@mitojs/react
TypeScript icon, indicating that this package has built-in type declarations

3.0.1 • Public • Published

@mitojs/react

⚠️ attention

If you want to import in weixin miniprograme,please replace @mitojs/browser to @miotjs/wx-mini

🛠️ Install

# using npm
npm install @mitojs/react @mitojs/browser
# using yarn
yarn add @mitojs/react @mitojs/browser

read the mito-doc to konw more info

🥳 Usage

Configure

import React from 'react'
import { init } from '@mitojs/browser'

const MitoInstance = init({
  // set debug true to convenient debugger in dev,set false in prod
  debug:true,
  dsn: '/upload',
  maxBreadcrumbs: 100,
})

Add ErrorBoundary

If you're using React 16 or above, you can use ErrorBoundary component to catch render error and automatically send to server.Here are some configurations of ErrorBoundary component that provided by @mitojs/react.

index.tsx

import React from 'react'
import App from './App'
import { MitoProvider } from '@mitojs/react'
import { init } from '@mitojs/browser'


const MitoInstance = init({
  dsn: 'https://test.com/yourServer',
  maxBreadcrumbs: 100,
})

const APP: React.FC = () => {
  return (
    <MitoProvider MitoInstance={MitoInstance}>
        <App />
    </MitoProvider>
  )
}

OtherComponent.tsx

ErrorBoundary component will automatically send react error if you set the correct dsn.

import { ErrorBoundary } from '@mitojs/react'
import ChildComponent from './ChildComponent'

export default function OtherComponent() {
  const onError = (error: Error, componentStack: string) => {
    console.log('triggered is render error')
  }
  const ErrorFallback = <div>Opps,trigger render error</div>
  return (
    <>
    	// this is used index.tsx's MitoInstance
      <ErrorBoundary onError={onError} fallback={ErrorFallback}>
        <ChildComponent></ChildComponent>
      </ErrorBoundary>
    </>
  )
}

multiple instances

initreturn a BrowserClient, so you can define multiple instances with init.The configuration and hooks between multiple instances does not affect each other.

import React from 'react'
import App from './App'
import { MitoProvider } from '@mitojs/react'
import { init } from '@mitojs/browser'


const MitoInstance_one = init({
  dsn: 'https://test.com/yourServer_one',
  maxBreadcrumbs: 100,
})

const MitoInstance_two = init({
  dsn: 'https://test.com/yourServer_two',
  maxBreadcrumbs: 20,
})

const APP: React.FC = () => {
  return (
    <MitoProvider MitoInstance={MitoInstance_one}>
      // this is used MitoInstance_one
        <App />
    		<MitoProvider MitoInstance={MitoInstance_two}>
           // this is used MitoInstance_two
           <OtherComponent />
        </MitoProvider>
    </MitoProvider>
  )
}

Use in wx-mini

If you want to use in Weixin miniprogram,just replace @mitojs/browser to @mitojs/wx-mini.Just like this:

install

yarn add @mitojs/react @mitojs/wx-mini
import React from 'react'
import App from './App'
import { MitoProvider } from '@mitojs/react'
import { init } from '@mitojs/wx-mini'


const MitoInstance = init({
  dsn: 'https://test.com/yourServer',
  maxBreadcrumbs: 100,
})

const APP: React.FC = () => {
  return (
    <MitoProvider MitoInstance={MitoInstance}>
        <App />
    </MitoProvider>
  )
}

Using CDN in Browser

CDN way is not recommended.Because @mitojs/web commonjs file is include jsxRuntime code,so it's size is larger than else package.

index.html

<header>
  <script src="https://cdn.jsdelivr.net/npm/@mitojs/web/dist/web.min.js"></script>
  <script>
    MITO.init({
		  dsn: 'https://test.com/yourServer',
		  maxBreadcrumbs: 100,
    });
  </script>
</header>

there is MITO varible automatically mounted on the window when you use cdn in script tag.Then you can use in react component

index.tsx

import React from 'react'
import App from './App'

const MitoInstance = MITO.init({
  dsn: 'https://test.com/yourServer',
  maxBreadcrumbs: 100,
})

const APP: React.FC = () => {
  return (
    <MITO.MitoProvider MitoInstance={MitoInstance}>
        <App />
    </MITO.MitoProvider>
  )
}

Readme

Keywords

Package Sidebar

Install

npm i @mitojs/react

Weekly Downloads

1

Version

3.0.1

License

MIT

Unpacked Size

555 kB

Total Files

10

Last publish

Collaborators

  • chenjinhuo