<abbr id="y2asm"></abbr><abbr id="y2asm"></abbr>
  • <code id="y2asm"></code>
    <code id="y2asm"></code>
  • <button id="y2asm"></button>
    <rt id="y2asm"></rt>

    SVG在React中的運(yùn)用

    在Web的世界當(dāng)中,SVG并不是什么新的語(yǔ)言,只不過(guò)早年前SVG在Web的應(yīng)用并不太廣泛。愛(ài)掏網(wǎng) - it200.com不過(guò)近年來(lái),它在Web的應(yīng)用越來(lái)越廣泛。愛(ài)掏網(wǎng) - it200.com最為常見(jiàn)的就是一些Icon圖標(biāo),復(fù)雜一點(diǎn)是一些矢量圖(比如不規(guī)則的圖形),甚至還可以使用SVG的濾鏡、動(dòng)效等功能,實(shí)現(xiàn)一些復(fù)雜的UI效果。愛(ài)掏網(wǎng) - it200.com不過(guò)這些并不是今天要和大家聊的主題,今天想和大家聊的是 SVG在前端框架中的應(yīng)用,比如React框架。愛(ài)掏網(wǎng) - it200.com

    在繼續(xù)往下閱讀之前,建議你對(duì)SVG有一定的了解,如果你在SVG這方面沒(méi)有任何的基礎(chǔ),建議你花點(diǎn)時(shí)間閱讀:

    • 圖解SVG的核心概念
    • SVG之旅
    • 編寫(xiě) SVG 的指南
    • SVG應(yīng)用指南

    如果你運(yùn)行“create-react-app”構(gòu)建的項(xiàng)目,其中React的Logo圖就是一個(gè)SVG:

    在此我們就可以提出第一個(gè)問(wèn)題:如何在React項(xiàng)目中引入SVG? 在回答這個(gè)問(wèn)題之前,我們先來(lái)回憶一下,在HTML中是如何引入SVG的。愛(ài)掏網(wǎng) - it200.com

    在HTML中引入SVG主要方式有:

    
    
    .logo {
        background-image: url('path/logo.svg')
    }
    
    
    
    
    
    
    

    不過(guò)最為常見(jiàn)的還是四種,不過(guò)我個(gè)人更推薦將SVG代碼內(nèi)聯(lián)到HTML中。愛(ài)掏網(wǎng) - it200.com

    回到React的世界中來(lái)。愛(ài)掏網(wǎng) - it200.com在項(xiàng)目初始化的時(shí)候,在src/目錄下就有一個(gè)logo.svg文件,你會(huì)發(fā)現(xiàn)在App.tsx文件中:

    import logo from './logo.svg';
    
    function App() {
        return (
            
            
    ); }

    通過(guò)import.svg文件引入進(jìn)來(lái),并且運(yùn)用到src屬性上:

    在編譯之后,你會(huì)發(fā)現(xiàn)上面的使用和在HTML中引入.svg相同:

    另外,在React框架上開(kāi)發(fā)項(xiàng)目的話,使用Webpack加載器來(lái)加載SVG已經(jīng)是非常成熟的技術(shù),而且還可以直接將.svg文件作為組件引入到任何React模塊中,并在構(gòu)建時(shí)進(jìn)行優(yōu)化。愛(ài)掏網(wǎng) - it200.com比如上面的App.tsx修改為:

    // App.tsx
    
    import React from 'react';
    // import logo from './logo.svg';
    import { ReactComponent as ReactLogo } from './logo.svg';
    import './App.css';
    
    function App() {
        return (
            
                
    {/* */}
    ); } export default App;

    編譯出來(lái)的代碼也不是加載.svg文件的方式了,而是直接將SVG代碼內(nèi)聯(lián)在頁(yè)面的DOM中:

    除此之外,我們還可以直接將SVG代碼放到相應(yīng)的組件模塊中,不過(guò)要將SVG代轉(zhuǎn)換成JSX代碼:

    // App.tsx
    function App() {
        return (
            
                
    {/* */} {/* */} 包月會(huì)員查看

    分享到:
    • 上一篇:A11Y 101: 構(gòu)建可訪問(wèn)性React應(yīng)用的技巧
    • 下一篇:使用React Hooks和WAAPI創(chuàng)建動(dòng)效
    聲明:所有內(nèi)容來(lái)自互聯(lián)網(wǎng)搜索結(jié)果,不保證100%準(zhǔn)確性,僅供參考。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進(jìn)行處理。
    發(fā)表評(píng)論
    更多 網(wǎng)友評(píng)論0 條評(píng)論)
    暫無(wú)評(píng)論

    返回頂部

    主站蜘蛛池模板: www久久com| 久久久亚洲欧洲日产国码二区 | 久久天天躁狠狠躁夜夜躁2020| 韩国无码av片| 我想看一级毛片| 免费看电视电影| 88国产精品欧美一区二区三区| 极品馒头一线天粉嫩| 国产亚洲情侣一区二区无| 一本色道久久88亚洲精品综合| 污污的软件下载| 国产福利一区二区在线观看| 久久亚洲精品专区蓝色区| 精品国产免费观看| 国产视频一区二| 久久精品二三区| 精品哟哟哟国产在线不卡| 国产黄在线观看免费观看不卡| 五月天婷婷在线播放| 老子影院午夜伦不卡手机| 处破之轻点好疼十八分钟| 亚洲午夜小视频| 蜜桃97爱成人| 在线播放免费人成毛片乱码 | 动漫乱理伦片在线观看| 99re精彩视频| 日韩激情无码免费毛片| 公车上的奶水嗯嗯乱hnp| 69无人区卡一卡二卡| 日本亚洲色大成网站www久久| 人妻无码αv中文字幕久久琪琪布| 色老板在线视频一区二区| 无码人妻一区二区三区免费n鬼沢 无码人妻一区二区三区免费看 | 亚洲狠狠婷婷综合久久蜜芽| 91香蕉视频黄色| 好男人电影直播在线观看| 亚洲女成人图区| 美女被吸乳老师羞羞漫画| 国产色xx群视频射精| 久久久久亚洲精品中文字幕| 波多野结衣绝顶大高潮|