Maison > interface Web > Tutoriel H5 > Résumé des différentes méthodes d'utilisation de svg dans React (avec code)

Résumé des différentes méthodes d'utilisation de svg dans React (avec code)

不言
Libérer: 2018-08-02 14:39:59
original
8691 Les gens l'ont consulté

Cet article vous présente un résumé des différentes méthodes d'utilisation de svg dans React (avec du code). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

Avantages

Résumé des différentes méthodes dutilisation de svg dans React (avec code)

  • SVG peut être lu et modifié par de nombreux outils (tels que vscode)

  • Aucune distorsion, l'image est claire lors d'un zoom avant ou arrière

  • Les fichiers SVG sont du XML pur et une structure DOM

  • Facile à utiliser, le logiciel de conception peut directement exporter

Compatibilité

Tableau de compatibilité précédent, ou rendez-vous sur caniuse.com pour consulter

Résumé des différentes méthodes dutilisation de svg dans React (avec code)

La compatibilité n'est pas un gros problème. Bien sûr, si votre site Web doit toujours être compatible avec ces anciens navigateurs, il existe des solutions correspondantes dans la communauté, comme certaines technologies de rétrogradation gracieuse de compatibilité descendante SVG de Zhang Xinxu

Comment utiliser

Il existe différentes options, celle qui convient à vos besoins est la meilleure

Utiliser directement dans le modèle

const Home = () => (
    <div>
        <svg>
            <rect></rect>
        </svg>
    </div>
)
Copier après la connexion
  1. Si chaque svg doit être dessiné par le front-end, les exigences du front-end sont plus élevées.

  2. Si chaque icône est copiée à partir du code svg donné par le concepteur, diverses balises doivent être modifiées, et une erreur sera signalée si l'erreur est corrigée

Cette méthode n'est pas conviviale

Convertir le svg en police

iconfont

Résumé des différentes méthodes dutilisation de svg dans React (avec code)

Copiez le code directement dans le CSS du projet, personnalisez le style de votre étiquette, reportez-vous à l'article officiel d'Alibaba, il est simple et grossier à utiliser et a une compatibilité élevée avec les navigateurs Cependant, vous devez le télécharger manuellement (d'autres solutions sont les bienvenues). De plus, si vous souhaitez déployer dans un environnement autre que le CDN d'Alibaba, vous devez d'abord le télécharger, puis le télécharger dans l'environnement cible. un peu gênant.

De plus, icomoon et d'autres proposent des solutions similaires

Convertir le svg en composant de réaction

Veuillez noter : ce qui suit inclura la configuration liée au dactylographie

Conversion avant la construction du projet

Exemple :

typescript-react-svg- icon-generator, nous avons besoin d'une pré-commande pour convertir svg.

// svg-generator.js

const generator = require('typescript-react-svg-icon-generator')

const config = {
    svgDir: './svg/',
    destination: './Icon/index.tsx'
}
generator(config)
Copier après la connexion
$ node ./svg-generator.js
Copier après la connexion

Utilisation :

import Icon from './Icon'
export default class App extends Component {
    render() {
        return <icon></icon>
    }
}
Copier après la connexion

De plus, svgr (mentionné ci-dessous) fournit également cette solution, veuillez le vérifier vous-même

lors de la construction du projet Convert

Exemple :

@svgr/webpack

Hmm c'est vrai, il s'agit d'un chargeur de webpack.

// webpack rules config
{
    test: /\.svg$/,
    loader: '@svgr/webpack'
}
Copier après la connexion
// 全局声明svg component定义
declare interface SvgrComponent extends React.StatelessComponent<react.svgattributes>> {}

declare module '*.svg' {
    const content: SvgrComponent
    export default content
}</react.svgattributes>
Copier après la connexion
import IconReact from '@assets/svg/react.svg'

const Home = () => (
    <p>
        <iconreact></iconreact>
    </p>
)
Copier après la connexion

L'avantage de cette solution n'est pas seulement la conversion pendant la construction, mais plus important encore, elle hérite entièrement des SVGAttributes, aucun coût d'apprentissage supplémentaire n'est requis ! Vous pouvez vous référer au projet ts-react-webpack4, ou à l'échafaudage steamer-react-ts

De plus, il existe des react-svg, svg-react-loader, etc. qui sont également implémentés de manière similaire

Articles connexes recommandés :

Le rôle du chemin SVG : Comment utiliser le chemin SVG dans le développement Web

Comment l'événement de stockage met en œuvre la communication inter-pages

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal