Document adding SVGs as React components (#5147)

* Document importing SVGs as React components

* Update README.md
This commit is contained in:
Marek Suscak
2018-10-01 16:06:26 +02:00
committed by Joe Haddad
parent 4a96247bf0
commit 9f7f2abf2e

View File

@@ -28,6 +28,7 @@ You can find the most recent version of this guide [here](https://github.com/fac
- [Adding a Sass stylesheet](#adding-a-sass-stylesheet)
- [Post-Processing CSS](#post-processing-css)
- [Adding Images, Fonts, and Files](#adding-images-fonts-and-files)
- [Adding SVGs](#adding-svgs)
- [Using the `public` Folder](#using-the-public-folder)
- [Changing the HTML](#changing-the-html)
- [Adding Assets Outside of the Module System](#adding-assets-outside-of-the-module-system)
@@ -676,6 +677,25 @@ Please be advised that this is also a custom feature of Webpack.
**It is not required for React** but many people enjoy it (and React Native uses a similar mechanism for images).<br>
An alternative way of handling static assets is described in the next section.
### Adding SVGs
> Note: this feature is available with `react-scripts@2.0.0` and higher.
One way to add SVG files was described in the section above. You can also import SVGs directly as React components. You can use either of the two approaches. In your code it would look like this:
```js
import { ReactComponent as Logo } from './logo.svg'
const App = () => (
<div>
{/* Logo is an actual React component */}
<Logo />
</div>
);
```
This is handy if you don't want to load SVG as a separate file. Don't forget the curly braces in the import! The `ReactComponent` import name is special and tells Create React App that you want a React component that renders an SVG, rather than its filename.
## Using the `public` Folder
> Note: this feature is available with `react-scripts@0.5.0` and higher.