美文网首页React Native开发
在React组件中使用本地SVG文件

在React组件中使用本地SVG文件

作者: 振礼硕晨 | 来源:发表于2019-10-10 15:46 被阅读0次

关于SVG

  • SVG可被非常多的工具读取和修改(比如vscode)
  • 不失真, 放大缩小图像都很清晰
  • SVG文件是纯粹的XML, 也是一种DOM结构
  • 使用方便, 设计软件可以直接导出

使用场景

首先说一下我的使用场景:这是一个和使用 webpack 工具管理的React项目,现在我已经下载了几个 .svg 文件到本地,准备直接在React项目中导入并使用这些SVG文件。

如果你的项目不是React或者不是使用webpack管理,那么这篇博客可能不能确切解决你的问题,但是你可以参考我的思路。

使用方法

1. 配置处理SVG的规则

如果你没有对webpack做过相关配置,那么是不能在React组件中使用本地SVG文件的,如果你直接引入SVG文件,那么在编译的时候,可能会遇到以下错误:

注意到红框中的错误提示:我们需要一个还是的 loader 来处理SVG文件,这里介绍一个非常好用的loader:file-loader

首先执行以下命令,安装该loader:

npm install file-loader --save-dev

安装完成之后,到 webpack.config.js 文件中添加一条处理规则,代码如下:

module.exports = {
    // 其他的配置规则也省略
    module:{
        rules:[
            {
                test: /\.(ttf|eot|svg|woff(2)?)(\?[a-z0-9=&.]+)?$/,
                loader: "file-loader?name=assets/[name].[ext]"
            }
        ]
    }
};

2. 在React组件中使用SVG

处理规则配置完成之后,现在就可以直接在React组件中使用SVG文件了,使用方式和图片非常类似,以下给出实例代码:

import React from 'react'

// 引入SVG文件
const logoSvg = require("images/logo.svg")

class Login extends React.Component {
    render() {
        return (
            <div className="login-page">
                {/* 把SVG当作普通图片使用 */}
                <img src={logoSvg}></img>   
            </div>
        );
    }
}

export default Login;

相关文章

  • 在React组件中使用本地SVG文件

    关于SVG SVG可被非常多的工具读取和修改(比如vscode) 不失真, 放大缩小图像都很清晰 SVG文件是纯粹...

  • 封装svg组件

    svg图标的使用基于这次项目的图标使用本地的svg图片。普通的使用方式 避免每次写这三行代码,封装一个svg组件 ...

  • vue 中父组件改变子组件样式,以iview组件为例

    在组件中需要使用本地样式,即scoped样式文件。在该文件中,父组件无法修改子组件的样式,选择器只能找到子组件的根...

  • React Native - 01 - Hello World!

    React Native就像React,但它使用本地组件而不是Web组件作为构建块。因此,要理解React Nat...

  • 组件化初探

    一、创建本地组件化 首先创建一个存储组件化的文件夹:例如 cd到这个文件夹中,使用下边命令创建本地组件库(注:我在...

  • 在 laravel vue 中使用 svg 图标

    安装扩展组件: 在 webpack.mix.js 中添加引用: 在 app.js 中引用组件 svg 使用: 默认...

  • React Native - Tutorial

    教程 React Native 跟前端的React框架很像,但是React Native是使用本地的组件像搭积木一...

  • vue-cli3使用svg的最佳实践

    目录 iconfont的三种使用方式及其优缺点 封装svg组件 svg雪碧图 自动导入svg图标 封装svg组件 ...

  • React Native 下载并打开pdf文件

    使用到的组件 react-native-fs 文件下载组件 GitHub - johanneslumpe/re...

  • react规范

    每个文件中只包含一个React组件。 Class 与 React.createClass方法对比:尽可能地使用ES...

网友评论

    本文标题:在React组件中使用本地SVG文件

    本文链接:https://www.haomeiwen.com/subject/rfkapctx.html