• Stars
    star
    1,866
  • Rank 24,836 (Top 0.5 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created about 10 years ago
  • Updated about 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Declarative, nested, stateful, isomorphic document.title for React

React Document Title

Provides a declarative way to specify document.title in a single-page app.
This component can be used on server side as well.

Built with React Side Effect.

Installation

npm install --save react-document-title

Dependencies: React >= 0.13.0

Features

  • Does not emit DOM, not even a <noscript>;
  • Like a normal React compoment, can use its parent's props and state;
  • Can be defined in many places throughout the application;
  • Supports arbitrary levels of nesting, so you can define app-wide and page-specific titles;
  • Works just as well with isomorphic apps.

Example

Assuming you use something like react-router:

function App() {
  // Use "My Web App" if no child overrides this
  return (
    <DocumentTitle title='My Web App'>
      <SomeRouter />
    </DocumentTitle>
  );
}

function HomePage() {
  // Use "Home" while this component is mounted
  return (
    <DocumentTitle title='Home'>
      <h1>Home, sweet home.</h1>
    </DocumentTitle>
  );
}

class NewArticlePage extends React.Component {
  constructor(props) {
    super(props);
    this.state = { title: 'Untitled' };
  }

  render() {
    // Update using value from state while this component is mounted
    return (
      <DocumentTitle title={this.state.title}>
        <div>
          <h1>New Article</h1>
          <input
            value={this.state.title}
            onChange={(e) => this.setState({ title: e.target.value })}
          />
        </div>
      </DocumentTitle>
    );
  }
}

Server Usage

If you use it on server, call DocumentTitle.rewind() after rendering components to string to retrieve the title given to the innermost DocumentTitle. You can then embed this title into HTML page template.

Because this component keeps track of mounted instances, you have to make sure to call rewind on server, or you'll get a memory leak.

But What About Meta Tags?

Looking for something more powerful? Check out React Helmet!

More Repositories

1

react-hot-loader

Tweak React components in real time. (Deprecated: use Fast Refresh instead.)
JavaScript
12,257
star
2

overreacted.io

Personal blog by Dan Abramov.
JavaScript
7,053
star
3

react-hot-boilerplate

Minimal live-editing example for React
JavaScript
3,905
star
4

react-transform-boilerplate

A new Webpack boilerplate with hot reloading React components, and error handling on module and component level.
JavaScript
3,372
star
5

whatthefuck.is

An opinionated glossary of computer science terms for front-end developers. Written by Dan Abramov.
CSS
3,008
star
6

react-makes-you-sad

Here’s a flowchart to make you happy again!
Makefile
2,093
star
7

flux-react-router-example

A sample app showcasing Flux with React Router
JavaScript
1,431
star
8

react-side-effect

Create components whose nested prop changes map to a global side effect
JavaScript
1,217
star
9

babel-plugin-react-transform

Babel plugin to instrument React components with custom transforms
JavaScript
1,080
star
10

suspense-experimental-github-demo

Sample project built with Suspense to demonstrate render-as-you-fetch
JavaScript
807
star
11

todos

Examples for “Idiomatic Redux”: one branch per lesson
JavaScript
802
star
12

react-transform-hmr

A React Transform that enables hot reloading React classes using Hot Module Replacement API
JavaScript
779
star
13

subliminal

An opinionated minimalistic VS Code theme for JavaScript
632
star
14

react-proxy

Proxies React components without unmounting or losing their state
JavaScript
459
star
15

react-pure-render

[No Maintenance Intended] A function, a component and a mixin for React pure rendering
JavaScript
451
star
16

redux-devtools-dock-monitor

A resizable and movable dock for Redux DevTools monitors
JavaScript
405
star
17

library-boilerplate

An opinionated boilerplate for React libraries including ESLint, Mocha, Babel, Webpack and an example powered by Webpack Dev Server and React Hot Loader
JavaScript
386
star
18

redux-devtools-log-monitor

The default monitor for Redux DevTools with a tree view
JavaScript
310
star
19

react-blessed-hot-motion

A console app demo using React for rendering, animation, and hot reloading
JavaScript
281
star
20

react-lag-radar

JavaScript
272
star
21

promise-loader

A webpack bundle-loader ripoff with promise interface
JavaScript
216
star
22

react-transform-catch-errors

React Transform that catches errors inside React components
JavaScript
184
star
23

react-elmish-example

My personal attempt at understanding Elm architecture
HTML
170
star
24

react-deep-force-update

Force-updates React component tree recursively
JavaScript
122
star
25

the-redux-journey

Slides from my talk at React Europe 2016
JavaScript
89
star
26

react-hot-api

(Deprecated) A generic library implementing hot reload for React components without unmounting or losing their state
JavaScript
88
star
27

gitbook-plugin-prism

Gitbook plugin for Prism highlighting
JavaScript
85
star
28

react-stateful

[No Maintenance Intended] A higher-order React component for lifting state
JavaScript
84
star
29

workshop

React Europe 2016 workshop repo
JavaScript
84
star
30

react-transform

A specification for tools instrumenting React components
68
star
31

disposables

Disposables let you safely compose resource disposal semantics
JavaScript
64
star
32

base16-js

Base16 themes in JS
JavaScript
35
star
33

redux-devtools-themes

Color themes for Redux DevTools monitors
JavaScript
34
star
34

react-for-beginners

This is my cloned version of the Wes Bos Series.
CSS
21
star
35

hooks-perf-issues

This repo demonstrates a situation where it is slower to use React hooks than classes
JavaScript
15
star
36

sc-bug-repro

CSS
15
star
37

testcomp

JavaScript
10
star
38

myapp

just testing lol
JavaScript
10
star
39

tictactoe

A LINQy TicTacToe implementation in C# for StackOverflow
C#
8
star
40

test.react.dev

(Work in progress) React documentation website in Test Test TEst
6
star
41

playtronica

A side project for a friend
JavaScript
5
star
42

redux-bootstrap

Bootstrapping function for Redux applications.
TypeScript
5
star
43

react-dnd-example

JavaScript
4
star
44

draft-js-borked

JavaScript
4
star
45

react-dnd-touch-backend

Touch Backend for react-dnd
JavaScript
3
star
46

gaearon.github.io

Oh hi.
HTML
3
star
47

jest-babel-issue

HTML
2
star
48

react-webpack

A starter template for building with React, Gulp and Webpack
JavaScript
2
star
49

jest-mock-issue-repro

JavaScript
2
star
50

rn-bug-loop

Kotlin
2
star
51

ulonkaFrontend01

JavaScript
1
star
52

HtmlWebpackReplaceManifestAssetsPlugin

A subplugin of the HtmlWebpackPlugin for replacing, in a html template, the assets with theis hashed versions
JavaScript
1
star