New:Introducing Socket Scanning for VS Code Marketplace Extensions.Learn more →
Get Started

@mitojs/react

Package Overview
Dependencies
Maintainers
1
Versions
46
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@mitojs/react

A SDK For Report React ErrorBoundary

Source
npmnpm
Version
2.1.27
Version published
Weekly downloads
0
Maintainers
1
Weekly downloads
 
Created
Source

@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

🥳 Usage

Configure

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

const MitoInstance = init({
  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>
  )
}

Keywords

mitojs

FAQs

Package last updated on 26 Sep 2021

Related posts