Socket
Socket
Sign inDemoInstall

@sentry/react

Package Overview
Dependencies
6
Maintainers
0
Versions
355
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

@sentry/react


Version published
Maintainers
0
Install size
9.64 MB
Created

Package description

What is @sentry/react?

The @sentry/react package is designed for error monitoring and performance tracking in React applications. It provides a comprehensive set of tools to capture exceptions, track performance issues, and improve the overall reliability of React applications. By integrating Sentry into a React project, developers can gain insights into errors and performance bottlenecks, allowing for quicker debugging and optimization.

What are @sentry/react's main functionalities?

Error Boundary

This feature automatically catches JavaScript errors anywhere in the child component tree of the Error Boundary and logs them to Sentry. It also displays a fallback UI instead of the component tree that crashed.

import React from 'react';
import * as Sentry from '@sentry/react';

const MyApp = () => (
  <Sentry.ErrorBoundary fallback={'An error has occurred'}>
    <YourApp />
  </Sentry.ErrorBoundary>
);

Performance Monitoring

Enables performance monitoring in your React application. By setting the `tracesSampleRate` to a value between 0 and 1, you can control the percentage of transactions sent to Sentry for performance analysis.

import * as Sentry from '@sentry/react';

Sentry.init({
  dsn: 'YOUR_DSN',
  tracesSampleRate: 1.0,
});

Custom Error Tracking

Allows for manual reporting of errors or exceptions to Sentry, giving developers the flexibility to capture specific issues that may not be automatically detected.

import * as Sentry from '@sentry/react';

Sentry.captureException(new Error('This is my custom error.'));

Other packages similar to @sentry/react

Changelog

Source

8.13.0

Important Changes

  • feat(nestjs): Add Nest SDK This release adds a dedicated SDK for NestJS (@sentry/nestjs) in alpha state. The SDK is a drop-in replacement for the Sentry Node SDK (@sentry/node) supporting the same set of features. See the docs for how to use the SDK.

Other Changes

  • deps: Bump bundler plugins to 2.20.1 (#12641)
  • deps(nextjs): Remove react peer dep and allow rc (#12670)
  • feat: Update OTEL deps (#12635)
  • feat(deps): bump @prisma/instrumentation from 5.15.0 to 5.15.1 (#12627)
  • feat(node): Add context info for missing instrumentation (#12639)
  • fix(feedback): Improve feedback error message (#12647)

Readme

Source

Sentry

Official Sentry SDK for ReactJS

General

This package is a wrapper around @sentry/browser, with added functionality related to React. All methods available in @sentry/browser can be imported from @sentry/react.

To use this SDK, call Sentry.init(options) before you mount your React component.

import React from 'react';
import { createRoot } from 'react-dom/client';
import * as Sentry from '@sentry/react';

Sentry.init({
  dsn: '__DSN__',
  // ...
});

// ...

const container = document.getElementById(“app”);
const root = createRoot(container);
root.render(<App />);

// also works with hydrateRoot
// const domNode = document.getElementById('root');
// const root = hydrateRoot(domNode, reactNode);
// root.render(<App />);

React 19

Starting with React 19, the createRoot and hydrateRoot methods expose error hooks that can be used to capture errors automatically. Use the Sentry.reactErrorHandler function to capture errors in the error hooks you are interested in.

const container = document.getElementById(“app”);
const root = createRoot(container, {
  // Callback called when an error is thrown and not caught by an Error Boundary.
  onUncaughtError: Sentry.reactErrorHandler((error, errorInfo) => {
    console.warn('Uncaught error', error, errorInfo.componentStack);
  }),
  // Callback called when React catches an error in an Error Boundary.
  onCaughtError: Sentry.reactErrorHandler(),
  // Callback called when React automatically recovers from errors.
  onRecoverableError: Sentry.reactErrorHandler(),
});
root.render(<App />);

If you want more finely grained control over error handling, we recommend only adding the onUncaughtError and onRecoverableError hooks and using an ErrorBoundary component instead of the onCaughtError hook.

ErrorBoundary

@sentry/react exports an ErrorBoundary component that will automatically send Javascript errors from inside a component tree to Sentry, and set a fallback UI.

app.js

import React from 'react';
import * as Sentry from '@sentry/react';

function FallbackComponent() {
  return <div>An error has occured</div>;
}

class App extends React.Component {
  render() {
    return (
      <Sentry.ErrorBoundary fallback={FallbackComponent} showDialog>
        <OtherComponents />
      </Sentry.ErrorBoundary>
    );
  }
}

export default App;

Profiler

@sentry/react exports a Profiler component that leverages the tracing features to add React-related spans to transactions. If tracing is not enabled, the Profiler component will not work. The Profiler tracks component mount, render duration and updates.

app.js

import React from 'react';
import * as Sentry from '@sentry/react';

class App extends React.Component {
  render() {
    return (
      <FancyComponent>
        <InsideComponent someProp={2} />
        <AnotherComponent />
      </FancyComponent>
    );
  }
}

export default Sentry.withProfiler(App);

FAQs

Last updated on 27 Jun 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc