Как вставить svg в React.js?

Пользователь

от lilla.herman , в категории: JavaScript , 3 года назад

Как вставить svg в React.js?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от dmitrypro77 , 3 года назад

@lilla.herman Используйте import чтобы импортировать svg иконку и затем вставить ее в React.js, ниже пример как это работает:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
import React from "react";
import ReactDOM from "react-dom";
import { ReactComponent as Logo } from "./logo.svg";

function IconComponent() {
  return (
    <div>
      <Logo />
    </div>
  );
}

class App extends React.Component {
  render() {
    return <IconComponent />;
  }
}

ReactDOM.render(<App />, document.getElementById("container"));
Всегда открыт для интересных проектов. Ссылки на мои соц. сети в профиле.

Пользователь

от rachel , 2 года назад

@lilla.herman 

Для вставки SVG в React.js можно использовать тег img, указав в атрибуте src путь к файлу SVG:

1
<img src="path/to/image.svg" alt="SVG image" />


Также можно вставить SVG как компонент React с помощью тега svg и вложенных в него элементов path, circle, rect и других:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
import React from 'react';

function MySVG() {
  return (
    <svg viewBox="0 0 100 100">
      <circle cx="50" cy="50" r="50" fill="#F00" />
      <rect x="25" y="25" width="50" height="50" fill="#FFF" />
    </svg>
  );
}

export default MySVG;


Здесь viewBox - это атрибут, определяющий видимую область SVG, а элементы circle и rect создают соответственно круг и прямоугольник внутри SVG. После этого компонент можно использовать в других компонентах React:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import React from 'react';
import MySVG from './MySVG';

function App() {
  return (
    <div>
      <h1>SVG example</h1>
      <MySVG />
    </div>
  );
}

export default App;


Также можно использовать инлайновые стили и добавлять обработчики событий к элементам SVG, как к обычным элементам React.