Bereaksi: Cara Menggunakan Atribut ViewBox

Diterbitkan: 2023-02-10

ViewBox adalah atribut elemen SVG yang memungkinkan pengguna untuk mengontrol ukuran dan penskalaan grafik vektor dalam sebuah wadah. Saat menggunakan ViewBox dengan React, pengembang harus menentukan dimensi wadah, serta atribut preservAspectRatio. Atribut preservAspectRatio menentukan bagaimana grafik diukur dan diposisikan di dalam wadah. Pengembang juga dapat mengontrol penskalaan dan terjemahan grafik menggunakan atribut viewBox.

Untuk membuat kotak tampilan SVG, Anda dapat menggunakan React Backstory. Versi baru Popmotion menyertakan perpustakaan animasi generik. Karena Popmotion adalah framework agnostik, kita akan membuat React ref dan svg untuk mengoptimalkan animasi. Posting ini akan membahas perpustakaan yang membungkus Popmotion dan khusus untuk React. Karena beberapa pengguna mungkin lebih memilih untuk tidak memiliki animasi, kueri media yang disukai dengan gerakan yang dikurangi dan hook React kustom useMedia dapat digunakan untuk menentukan apakah preferensi ini ada. Jika pengguna lebih suka animasi dengan kecepatan lebih rendah, kami akan menghentikan animasi dan mengatur ulang komik ke viewBox zooming-out aslinya segera; jika tidak, kami akan memulai animasinya. Sebagai alternatif kedua, saya membuat animasi React menggunakan pembungkus yang berfungsi dengan Popmotion, lalu merendernya menggunakan Framer Motion.

Anda juga dapat menyetel viewBox ke otomatis saat menggunakan *svg. Rasio aspek keseluruhan dari viewBox akan disesuaikan oleh browser sebagai bagian dari pengaturan.

Apakah Viewbox Diperlukan Untuk Svg?

Apakah Viewbox Diperlukan Untuk Svg?
Sumber Gambar: https://sourcecodester.com

ViewBox diperlukan untuk SVG. Ini menyediakan sistem koordinat untuk elemen grafis.

Hasilnya, kita dapat mengisi wadah apa pun yang berisi SVG kita, seperti ini: Katakanlah kita memiliki gambar burung kecil. Dengan viewBox yang diatur dengan benar pada gambar ini, ukuran wadah akan diskalakan ke dimensi yang ditentukan oleh gambar ini. Selain itu, viewBox memberi kita kemampuan untuk menyembunyikan sebagian gambar, membuatnya sangat berguna untuk animasi. Menggunakan viewBox, kita dapat memotong gambar kita jauh lebih efektif. Dengan menggunakan program ini, kita dapat membuat animasi awan yang bergerak melintasi langit. Anda dapat menganimasikan ini dengan mengubah nilai min-x viewBox. Karena PreserveRatioAspect bisa membuat kewalahan, saya tidak menyertakannya dalam artikel ini.

Cara Mengubah Ukuran Gambar Di Html

Dalam hal ini, Anda dapat mengubah atribut lebar dan tinggi agar sesuai dengan ukuran yang diinginkan.


Svg Gunakan Kotak Tampilan

Svg Gunakan Kotak Tampilan
Sumber Gambar: https://clipartart.com

Atribut viewBox merupakan bagian penting dari spesifikasi SVG . Ini memberikan cara yang bagus untuk mengontrol penskalaan dan terjemahan gambar SVG. Atribut viewBox dapat digunakan pada elemen, atau pada elemen atau. Saat digunakan pada salah satu elemen ini, atribut viewBox membuat viewport baru untuk konten elemen.

ViewBox dan viewPort adalah istilah yang umum digunakan di SVG. Fungsi ViewPort mirip dengan gambar yang ada di dalam wadah. ViewBox dapat diakses melalui viewport. Selanjutnya, Anda dapat mengukur ini dengan menggerakkannya ke kiri, kanan, atas, dan bawah. Karena viewBox w/h menjadi lebih kecil dari 300 x 500, gambar menjadi lebih kecil di dalam viewport (memperkecil). ViewBox x/y menggeser gambar ke kanan/bawah di dalam lebar/tinggi viewBox viewBox, dan seluruh viewport dapat diperbesar (div / p /) atau meluap (html / vi). Jika viewport lebih besar dari setumpuk kartu, menambah angka viewBox “x y…” akan menggeser gambar kotak sereal ke atas/kiri.

Svg 101: Dasar-Dasar

Proses pembuatan SVG sederhana, tetapi ada beberapa hal yang perlu diperhatikan. ViewsBox tidak ada di dunia nyata karena didasarkan pada 0-100 unit. Selanjutnya, sistem koordinat didefinisikan dalam 0-100 unit daripada piksel. Anda harus menentukan ukuran file svg dalam piksel sebelum dapat ditampilkan. Gambar di bawah ini adalah SVG sederhana . Siapkan kanvas pada baris pertama dan kemudian potong SVG pada baris kedua. Ini berarti svg akan memiliki lebar 200 piksel dan tinggi 200 piksel, seperti yang ditunjukkan pada pengaturan viewBox. xmlns = "svg" lebar: 200 tinggi: 200

Bereaksi Svg

React-SVG adalah pustaka yang memungkinkan Anda menyertakan file Scalable Vector Graphics (SVG) dalam aplikasi React Anda. Ini menyediakan cara sederhana untuk menyertakan file SVG dalam aplikasi Anda dan menyediakan sejumlah fitur yang memungkinkan Anda untuk memanipulasi file SVG dalam aplikasi Anda.

Format gambar grafik berbasis XML yang dikenal sebagai SVG digunakan. Beberapa merek terpopuler, seperti Twitter, YouTube, Udacity, Netflix, dan lainnya, menggunakan Scalable Vector Graphics untuk gambar dan ikon mereka. Anda dapat mengimpor dan menggunakan SVG secara langsung sebagai komponen React dalam kode Anda. Gambar, bukannya menjadi file terpisah, dirender bersama HTML. Melalui penggunaan SVGR, kerangka kerja CRA memungkinkan transformasi dan impor SVG sebagai komponen React. Jika Anda tidak memiliki Create React App , Anda harus memikirkan opsi lain. Scalable Vector Graphics (SVG) dapat diubah menjadi komponen React menggunakan alat canggih seperti SVGR.

File DOM biasanya dibuat dari ini. Lapisan middleware LogRocket Redux paket ini memberi Anda visibilitas tambahan ke dalam sesi pengguna. Tujuan LogRocket adalah untuk melacak semua tindakan dan status Redux. Itu tidak hanya memantau kinerja aplikasi Anda, tetapi juga memberikan laporan beban CPU, penggunaan memori, dan sebagainya. Saatnya untuk memodernisasi cara Anda men-debug aplikasi React Anda, dan segera mulai memantau secara gratis.

Apakah Lebih Baik Menggunakan Svg Atau Png Dalam Bereaksi?

Alih-alih surat itu, gunakan. Jika Anda memiliki file jpeg di aplikasi React Native, Anda harus menggunakan format SVG . Format berbasis vektor seperti SVG, dengan fleksibilitas dan elastisitasnya, ideal untuk menyimpan informasi dalam berbagai format.

Banyak Manfaat Menggunakan File Svg

Meskipun ukuran file lebih kecil dari file AI, SVG masih dapat diedit dan diskalakan. Format file SVG untuk menampilkan gambar 2D berkualitas tinggi di internet dirancang untuk mempermudah SEO.

Skala Svg Bereaksi

Svg React Scale adalah paket npm yang memungkinkan Anda menskalakan komponen React dengan mudah. Ini menyediakan API sederhana yang memungkinkan Anda menentukan lebar dan tinggi komponen Anda, dan secara otomatis akan menskalakan komponen Anda agar sesuai dengan dimensi tersebut.

Cara Menskalakan Grafik Vektor yang Dapat Diskalakan (SVG) Amelia Bellamy-Royds mengajari Anda semua yang perlu Anda ketahui tentang penskalaan SVG. Ini tidak sesederhana menskalakan grafik raster, tetapi memiliki beberapa aplikasi menarik. Mungkin sulit bagi pemula untuk mempelajari cara menggunakan SVG dengan cara yang benar. Sepotong kue didefinisikan sebagai gambar dengan rasio aspek yang jelas: rasio lebar terhadap tinggi. Dalam beberapa kasus, Anda dapat memaksa browser untuk menggambar gambar raster dengan ukuran yang berbeda dari tinggi dan lebar intrinsiknya, tetapi dalam kasus lain, Anda harus mendistorsi gambar untuk menggambarnya. SVG sebaris akan digambar pada ukuran yang ditentukan dalam kode, terlepas dari apakah kanvasnya besar atau kecil. ViewBox digunakan untuk membuat Scalable Vector Graphics, yang merupakan bagian terakhir dari teka-teki grafis vektor.

Elemen viewBox adalah salah satu pengidentifikasi elemen. Angka dibagi menjadi empat bagian: x, y, lebar, dan tinggi, dan diwakili oleh spasi putih atau koma. Sistem koordinat untuk viewport paling kiri di pojok kiri atas harus ditentukan. Ketinggian program didefinisikan sebagai jumlah koordinat dan ps/ps yang harus diskalakan untuk mencapainya. Bila rasio aspek tidak sesuai dengan dimensi, gambar akan melebar atau terdistorsi. Properti object-fit memungkinkan Anda memasukkan berbagai jenis gambar ke dalam badan CSS yang sama. Anda juga dapat memilih untuk menyetel opsi preservRatioAspect=”none” agar gambar Anda dapat diskalakan persis seperti gambar raster.

Dalam gambar raster, Anda dapat menentukan lebar atau tinggi agar sesuai dengan skala pada set lain. Apa cara terbaik untuk melakukannya? SVG? Tidak ada cara mudah untuk mengatasi masalah ini. Untuk memulai, Anda perlu mempelajari cara menggunakan ukuran otomatis gambar dengan gambar >img.>. Untuk menentukan rasio aspek suatu elemen, Anda dapat menggunakan berbagai properti CSS untuk menyesuaikan tinggi dan marginnya. Jika gambar memiliki viewBox, diasumsikan browser lain akan menggunakan ukuran default 300*150 secara otomatis.

Jika Anda menggunakan browser Blink/Firefox terbaru, gambar akan masuk ke dalam viewBox saat gambar diskalakan. Jika Anda tidak menentukan tinggi atau lebar, browser ini akan menggunakan ukuran default yang sama seperti sebelumnya. Ini adalah metode paling mudah untuk mengganti elemen di SVG, juga di <object> dan cara lainnya. Grafik sebaris biasanya memiliki nol dalam hal ketinggian resmi. Grafik akan direduksi menjadi tidak ada jika nilai preservRatioAspect disetel ke default. Untuk itu, Anda ingin grafik Anda meregang untuk menutupi seluruh lebar, dan kemudian tumpah ke area padding yang Anda atur dengan hati-hati ke rasio aspek yang benar. Atribut ViewBox dan PreserveRatioAspect sangat mudah beradaptasi. Elemen bersarang dapat digunakan untuk membuat skala grafik independen dengan setiap elemen memiliki atribut penskalaannya sendiri. Hasilnya, Anda dapat menggunakan metode ini untuk membuat grafik header yang mencakup area yang luas tanpa mengorbankan ketinggian.

Cara Mengubah Ukuran Gambar Svg Di React

Saat menggunakan React, lakukan perubahan berikut. Transformasi CSS dapat mengubah ukuran ComponentName /> dengan mengubah nilainya dari scale(2) menjadi scale(3) menggunakan className atau file CSS global. Anda dapat mengubah warna kelas komponen dengan memilihnya, mengisinya dengan warna, dan mengubah skala dengan memilihnya, tetapi jika Anda mengubah skala, kelas komponen akan berubah. Bagaimana Anda mengukur file SVG? Pertama-tama Anda harus menarik & melepas file gambar SVG Anda atau mengklik di dalam area putih untuk memilih file. Untuk mengubah ukuran, klik tombol Ubah Ukuran. Anda dapat mengunduh hasilnya setelah proses selesai.

Gunakan Media Custom React Hook

Tidak ada hook React bawaan untuk kueri media, tetapi Anda dapat menggunakan hook React kustom useMedia. Pengait ini mengembalikan nilai boolean yang menunjukkan apakah kueri media yang ditentukan cocok. Anda dapat menggunakan kait useMedia seperti ini:
impor { useMedia } dari 'usemedia';
const isSmall = useMedia('(max-width: 600px)');

Fitur Kueri Media dari CSS memungkinkan Anda untuk menerapkan gaya tertentu ke elemen HTML sesuai permintaan. Contoh kueri media yang umum adalah untuk menentukan lebar jendela mana yang merupakan ukuran layar (cetak, layar) dan jenis media yang mana. Anda dapat menggunakan jendela untuk memeriksa kueri media menggunakan JavaScript. Objek MediaQueryList dikembalikan sebagai hasil dari setiap string kueri dalam fungsi ini. Pustaka MatcMedia menyertakan React Hook yang memungkinkan Anda memeriksa hasil kecocokan Media Query dan mengubah antarmuka atau perilaku aplikasi Anda berdasarkan hasil tersebut. Dengan kata lain, definisi tipe hooks TypeScript terlihat seperti ini. Sebagai hasil dari pengait kami, Boolean dikembalikan sebagai string kueri sebagai parameter. Metode bernama matchMedia akan ditambahkan untuk mengubah event listener.

Bisakah Kita Membuat Kait Khusus Dalam Bereaksi?

Saat kita ingin mengimplementasikan logika untuk hook useState dan useEffect di beberapa komponen, Hook kustom adalah pilihan yang bagus. Dengan React Hooks khusus, kita dapat dengan mudah menggunakan kembali logika stateful di berbagai komponen dengan cara yang dioptimalkan dan dapat diskalakan.

Pro Dan Kontra Dari React Hooks Dan Redux

Kait digunakan di sini. Rahasia Redux dapat dengan mudah dihapus bersama mereka, dan dalam banyak kasus Anda dapat membuatnya bekerja tanpa harus mempelajarinya. Mereka juga lebih mudah beradaptasi, memungkinkan Anda menggunakannya untuk lebih dari sekadar pengelolaan negara.
Jika Anda masih bingung, pertimbangkan cara menggunakan fitur manajemen status React dan Redux. Jika Anda ingin dapat memodifikasi aplikasi berdasarkan input pengguna, Redux adalah pilihan terbaik. Pengait adalah pilihan yang sangat baik jika Anda hanya perlu menyimpan beberapa barang.
Keputusan akhir ada di tangan Anda; Anda bebas memilih pendekatan terbaik untuk proyek Anda. Meskipun demikian, perlu diingat bahwa masing-masing memiliki kelebihan dan kekurangan sehingga Anda dapat membuat keputusan terbaik untuk situasi spesifik Anda.

Di Mana Anda Menempatkan Kait Bereaksi Khusus?

Anda harus selalu menggunakan Hooks di bagian paling atas fungsi React sebelum Anda memulai tindakan pengembalian apa pun. Jika Anda mengikuti aturan ini, Anda dapat menjamin bahwa pengait akan ditempatkan dalam urutan yang sama setiap kali komponen dirender. Hasilnya, React dapat mempertahankan status Hooks dengan baik antara beberapa panggilan useState dan panggilan useEffect.

React Hooks: Pedoman Penggunaan

Ada juga masalah dengan kait React karena tidak didokumentasikan dengan baik. Mereka yang baru mengenal React mungkin merasa kesulitan untuk mengimplementasikannya. Hooks, di sisi lain, mungkin sulit untuk dipahami karena dapat digunakan dalam berbagai cara. Untuk menghadapi tantangan ini, saya merekomendasikan pengembang React untuk memulai dengan hook menggunakan beberapa panduan sederhana. Sebelum memulai, Anda harus terlebih dahulu membaca dokumentasi untuk mempelajari tentang berbagai hook yang tersedia. Terakhir, hindari penggunaan hook terlalu sering. Dengan mengaktifkan opsi ini, basis kode Anda akan mudah dibaca. Pastikan Anda menulis tes apa pun yang Anda butuhkan untuk menguji hook Anda. Anda juga dapat memastikan bahwa instruksinya benar dan Anda memahami cara kerjanya dengan melakukannya. Anda dapat menggunakan hook untuk meningkatkan basis kode React secara umum. Jika Anda mengikuti pedoman ini, Anda akan dapat menulis kode yang lebih mudah dipahami dan menghasilkan kinerja yang lebih baik.

Haruskah Saya Menggunakan React Hooks Khusus?

Kait React JS khusus diperlukan jika Anda memiliki satu atau lebih kait React yang akan digunakan di berbagai lokasi dalam sebuah kode. Ini membantu dalam proses pengkodean yang efisien dan jelas.

Mengapa Menggunakan Kait Kustom?

Pengait khusus dapat berguna untuk berbagai alasan. Ada banyak alasan mengapa kode dapat digunakan kembali. Logika setState atau localStorage yang umum, misalnya, dapat disematkan di hook dan digunakan di semua komponen.
Ada juga beberapa alasan mengapa Anda mungkin ingin menggunakan custom hook. Komponen "host" dari sebuah hook akan dirender ulang setelah hook berubah dalam keadaan, terlepas dari apakah perubahan tersebut memengaruhi nilai kembaliannya atau tidak. Akibatnya, kait adalah metode yang efisien untuk melakukan logika umum.
Namun, ada satu kelemahan menggunakan hook: hook dapat merender program. Meskipun itu adalah penalti kinerja, itu tidak selalu parah.

Bisakah Kait Khusus Mengganti Redux?

Dalam hal penskalaan, React hook khusus mungkin merupakan alternatif yang tidak terlalu membengkak untuk Redux dan mengelola status lintas komponen, menghindari propdrilling, dan seterusnya. Selain itu, dengan memanfaatkan react hooks yang sudah tersedia dan menghindari ketergantungan tambahan, seperti redux npm, ini membuat ukuran aplikasi sekecil mungkin.

Apa Perbedaan Antara React Hooks dan Redux?

React Hooks memungkinkan aplikasi React menangani keadaan lokal. Status global dan tindakan yang dapat dikirim disimpan di Redux, sedangkan React Hooks menangani status komponen lokal. Karena React Hooks dapat digunakan pada komponen kecil atau terisolasi, ini adalah pilihan yang lebih baik untuk komponen kecil atau terisolasi. HOC, seperti Hooks, adalah pola yang tidak bergantung pada React. Fungsi dan HOC dapat ditulis seperti React hook, tetapi React hook tidak dapat disusun. React Hooks lebih efektif untuk komponen yang lebih besar dan kompleks karena dimensinya yang lebih besar. Ini sepenuhnya terserah Anda apa yang ingin Anda capai. Redux adalah alat yang hebat untuk mengembangkan aplikasi global, sedangkan React Hooks lebih cocok untuk komponen yang lebih kecil dan lebih spesifik.