Pek web menyokong es6. Webpack 2 menyokong sintaks modul ES6 asli, yang bermaksud pembangun boleh menggunakan import dan eksport tanpa memperkenalkan alat tambahan seperti babel. Tetapi jika anda menggunakan ciri ES6+ yang lain, anda masih perlu memperkenalkan alat babel.
Persekitaran pengendalian tutorial ini: sistem Windows 7, ECMAScript versi 6, komputer Dell G3.
Kaedah modul
Apabila webpack membungkus aplikasi anda, anda boleh memilih daripada pelbagai gaya sintaks modul, termasuk ES6, CommonJS dan AMD.
Walaupun pek web menyokong berbilang sintaks modul, kami masih mengesyorkan menggunakan sintaks yang konsisten sebanyak mungkin untuk mengelakkan beberapa gelagat dan pepijat yang pelik. Sebenarnya, webpack mendayakan semakan konsistensi sintaks apabila fail package.json terdekat mengandungi medan "jenis" dengan nilai "modul" atau "commonjs". Sila ambil perhatian ini sebelum membaca:
-
Tetapkan "jenis": "modul" untuk .mjs atau .js dalam package.json
-
CommonJS ialah tidak dibenarkan, sebagai contoh, anda tidak boleh menggunakan require, module.exports atau exports
Apabila mengimport fail, adalah wajib untuk menulis sambungan, contohnya, anda harus menggunakan import '. /src/App.mjs' dan bukannya import './src/App' (anda boleh melumpuhkan peraturan ini dengan menetapkan Rule.resolve.fullySpecified)
-
-
Tetapkan "type": "commonjs" dalam package.json untuk .cjs atau .js
Kedua-dua import dan eksport tidak tersedia
-
Tetapkan "jenis": "modul" untuk .wasm dalam package.json
Apabila memperkenalkan fail wasm, anda mesti menulis sambungan fail
ES6 (disyorkan)
webpack 2 menyokong sintaks modul ES6 asli, yang bermaksud anda tidak perlu memperkenalkan alatan tambahan seperti babel. , anda boleh menggunakan import dan eksport. Tetapi ambil perhatian bahawa jika anda menggunakan ciri ES6+ yang lain, anda masih perlu mengimport babel. webpack menyokong kaedah berikut:
import
Gunakan import untuk mengimport secara statik modul lain yang dieksport melalui eksport.
import MyModule from './my-module.js'; import { NamedExport } from './other-module.js';
Amaran:
Kata kunci di sini adalah statik. Dalam pernyataan import standard, pernyataan modul tidak boleh memperkenalkan modul lain dalam cara dinamik yang "mempunyai logik atau mengandungi pembolehubah". Maklumat lanjut tentang import dan penggunaan dinamik import().
Anda juga memperkenalkan URI Data melalui import:
import 'data:text/javascript;charset=utf-8;base64,Y29uc29sZS5sb2coJ2lubGluZSAxJyk7'; import { number, fn, } from 'data:text/javascript;charset=utf-8;base64,ZXhwb3J0IGNvbnN0IG51bWJlciA9IDQyOwpleHBvcnQgY29uc3QgZm4gPSAoKSA9PiAiSGVsbG8gd29ybGQiOw==';
eksport
Keseluruhan modul dieksport secara lalai Atau dinamakan modul eksport.
// 具名导出 export var Count = 5; export function Multiply(a, b) { return a * b; } // 默认导出 export default { // Some data... };
import()
function(string path):Promise
Modul pemuatan dinamik. Titik di mana import dipanggil dianggap sebagai titik perpecahan, bermakna modul yang diminta dan semua submodul yang dirujuknya akan dibahagikan kepada satu bahagian.
Petua:
Spesifikasi pemuat ES2015 mentakrifkan kaedah import(), yang boleh memuatkan modul ES2015 secara dinamik pada masa jalan.
if (module.hot) { import('lodash').then((_) => { // Do something with lodash (a.k.a '_')... }); }
Amaran: Ciri
import() bergantung pada Promise terbina dalam. Jika anda ingin menggunakan import() dalam penyemak imbas lama, ingat untuk menggunakan pustaka polyfill seperti es6-promise atau promise-polyfill untuk pra-populasi (shim) persekitaran Promise. Ungkapan
dalam
import() tidak boleh menggunakan pernyataan import dinamik sepenuhnya, seperti import(foo). adalah kerana foo boleh menjadi sebarang laluan ke mana-mana fail dalam sistem atau projek anda. import() mesti mengandungi sekurang-kurangnya beberapa maklumat laluan tentang modul. Pembungkusan boleh dihadkan kepada direktori atau set fail tertentu, supaya apabila menggunakan ungkapan dinamik - setiap modul yang mungkin diminta dalam panggilan import() disertakan. Contohnya, import(`./locale/${language}.json`) akan membungkus setiap fail .json dalam direktori .locale ke dalam bongkah baharu. Pada masa jalan, selepas bahasa pembolehubah telah dinilai, mana-mana fail seperti english.json atau german.json boleh digunakan.// 想象我们有一个从 cookies 或其他存储中获取语言的方法 const language = detectVisitorLanguage(); import(`./locale/${language}.json`).then((module) => { // do something with the translations });
Petua: Menggunakan pilihan webpackInclude dan webpackExclude membolehkan anda menambah corak ekspresi biasa untuk mengurangkan bilangan fail yang diimport oleh webpack.
Komen Ajaib
Ulasan sebaris membolehkan ciri ini. Dengan menambahkan ulasan pada import, kita boleh melakukan perkara seperti menamakan bahagian atau memilih mod lain.// 单个目标 import( /* webpackChunkName: "my-chunk-name" */ /* webpackMode: "lazy" */ /* webpackExports: ["default", "named"] */ 'module' ); // 多个可能的目标 import( /* webpackInclude: /\.json$/ */ /* webpackExclude: /\.noimport\.json$/ */ /* webpackChunkName: "my-chunk-name" */ /* webpackMode: "lazy" */ /* webpackPrefetch: true */ /* webpackPreload: true */ `./locale/${language}` );
import(/* webpackIgnore: true */ 'ignored-module.js');
: Apabila ditetapkan kepada benar, penghuraian import dinamik dilumpuhkan. webpackIgnore
Amaran: Nota: Menetapkan webpackAbaikan kepada benar tidak akan melakukan pemisahan kod.
webpackChunkName
: Nama bongkah baharu. Bermula dengan webpack 2.6.0, pemegang tempat [indeks] dan [permintaan] menyokong nombor tambahan atau nama fail yang dihuraikan sebenar masing-masing. Selepas menambahkan anotasi ini, potongan individu yang diberikan kepada kami akan dinamakan [nama-ketulan-saya].js bukannya [id].js.
webpackMode
: Bermula dengan webpack 2.6.0, anda boleh menentukan mod berbeza untuk menghuraikan import dinamik. Pilihan berikut disokong:
'lazy'
(lalai): Hasilkan bongkah yang boleh dimuatkan malas untuk setiap modul yang diimport oleh import().'lazy-once'
: Menghasilkan satu bongkah boleh muat malas yang boleh memenuhi semua panggilan import(). Potongan ini akan diperolehi pada panggilan import() pertama, dan import()s seterusnya akan menggunakan respons rangkaian yang sama. Harap maklum bahawa mod ini hanya masuk akal dalam beberapa pernyataan dinamik, seperti import(`./locales/${language}.json`), yang mungkin mengandungi berbilang laluan modul yang diminta.'eager'
: Tiada potongan tambahan akan dijana. Semua modul diimport oleh bahagian semasa dan tiada permintaan rangkaian tambahan dibuat. Walau bagaimanapun, Janji dalam keadaan diselesaikan masih akan dikembalikan. Berbeza dengan import statik, modul tidak akan dilaksanakan sehingga panggilan untuk import() selesai.'weak'
: Cuba muatkan modul jika fungsi modul telah dimuatkan dengan cara lain (iaitu, bahagian lain telah mengimport modul ini, atau skrip yang mengandungi modul telah dimuatkan). Janji masih akan dikembalikan, tetapi hanya akan berjaya diselesaikan jika bahagian itu sudah tersedia pada pelanggan. Jika modul tidak tersedia, Janji yang ditolak dikembalikan dan permintaan rangkaian tidak pernah dilaksanakan. Ini berguna untuk Rendering Universal (SSR) apabila potongan yang diperlukan sentiasa disediakan secara manual dalam permintaan awal (terbenam dalam halaman), dan bukannya apabila navigasi aplikasi dicetuskan pada import modul yang tidak diberikan pada mulanya.
webpackPrefetch
: Memberitahu penyemak imbas bahawa sumber ini mungkin diperlukan untuk lompatan navigasi tertentu pada masa hadapan.
webpackPreload
: Memberitahu penyemak imbas bahawa sumber itu mungkin diperlukan semasa navigasi semasa.
webpackInclude
: Ungkapan biasa digunakan untuk pemadanan semasa peleraian import. Hanya modul yang sepadan akan dibungkus.
webpackExclude
: Ungkapan biasa digunakan untuk pemadanan semasa peleraian import. Semua modul yang sepadan tidak akan dibungkus.
webpackExports
: Beritahu pek web supaya hanya membina modul import() dinamik dengan eksport tertentu. Ia boleh mengurangkan saiz ketulan. Tersedia daripada webpack 5.0.0-beta.18 dan seterusnya.
[Cadangan berkaitan: tutorial pembelajaran javascript]
Atas ialah kandungan terperinci Adakah webpack menyokong es6?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

HTML dan React boleh diintegrasikan dengan lancar melalui JSX untuk membina antara muka pengguna yang cekap. 1) Benamkan elemen HTML menggunakan JSX, 2) mengoptimumkan prestasi rendering menggunakan DOM maya, 3) mengurus dan menjadikan struktur HTML melalui komponen. Kaedah integrasi ini bukan sahaja intuitif, tetapi juga meningkatkan prestasi aplikasi.

React dengan cekap menjadikan data melalui negeri dan prop, dan mengendalikan peristiwa pengguna melalui sistem peristiwa sintesis. 1) Gunakan UseState untuk menguruskan keadaan, seperti contoh kaunter. 2) Pemprosesan acara dilaksanakan dengan menambahkan fungsi dalam JSX, seperti klik butang. 3) Atribut utama diperlukan untuk membuat senarai, seperti komponen todolist. 4) Untuk pemprosesan borang, useState dan E.PreventDefault (), seperti komponen bentuk.

React berinteraksi dengan pelayan melalui permintaan HTTP untuk mendapatkan, menghantar, mengemas kini dan memadam data. 1) Operasi Pengguna mencetuskan peristiwa, 2) Memulakan permintaan HTTP, 3) Respons Pelayan Proses, 4) Kemas kini Status Komponen dan Re-Render.

React adalah perpustakaan JavaScript untuk membina antara muka pengguna yang meningkatkan kecekapan melalui pembangunan komponen dan DOM maya. 1. Komponen dan JSX: Gunakan sintaks JSX untuk menentukan komponen untuk meningkatkan intuitif dan kualiti kod. 2. 3. Pengurusan dan cangkuk negeri: cangkuk seperti useState dan useeffect memudahkan pengurusan negeri dan pengendalian kesan sampingan. 4. Contoh penggunaan: Dari bentuk asas kepada pengurusan negara global yang maju, gunakan Contextapi. 5. Kesilapan dan penyahpepijatan biasa: Elakkan masalah pengurusan dan komponen yang tidak betul, dan gunakan ReactDevTools untuk debug. 6. Pengoptimuman prestasi dan optimum

ReactIsafrontendLibrary, FocusedonBuildingUserInterfaces.itmanagesuistateandupdateseficientlyusingvirtualdom, andinteractswithBackendservicesviaapisfordatahandling, butdoesnotprocessoredataveLF.

React boleh tertanam dalam HTML untuk meningkatkan atau menulis semula halaman HTML tradisional. 1) Langkah -langkah asas untuk menggunakan React termasuk menambah div akar dalam HTML dan menjadikan komponen React melalui reactDom.render (). 2) Aplikasi yang lebih maju termasuk menggunakan UseState untuk menguruskan negeri dan melaksanakan interaksi UI yang kompleks seperti kaunter dan senarai tugasan. 3) Pengoptimuman dan amalan terbaik termasuk segmentasi kod, pemuatan malas dan menggunakan React.Memo dan Usememo untuk meningkatkan prestasi. Melalui kaedah ini, pemaju boleh memanfaatkan kuasa bertindak balas untuk membina antara muka pengguna yang dinamik dan responsif.

React adalah perpustakaan JavaScript untuk membina aplikasi front-end moden. 1. Ia menggunakan komponen dan maya DOM untuk mengoptimumkan prestasi. 2. Komponen menggunakan JSX untuk menentukan, menyatakan dan atribut untuk menguruskan data. 3. Cangkuk memudahkan pengurusan kitaran hidup. 4. Gunakan Contextapi untuk menguruskan status global. 5. Kesilapan biasa memerlukan kemas kini status debugging dan kitaran hayat. 6. Teknik pengoptimuman termasuk memoisasi, pemisahan kod dan menatal maya.

Masa depan React akan memberi tumpuan kepada pembangunan komponen utama, pengoptimuman prestasi dan integrasi yang mendalam dengan susunan teknologi lain. 1) React akan memudahkan penciptaan dan pengurusan komponen dan mempromosikan perkembangan komponen utama. 2) Pengoptimuman prestasi akan menjadi tumpuan, terutamanya dalam aplikasi besar. 3) React akan disepadukan dengan teknologi seperti GraphQL dan TypeScript untuk meningkatkan pengalaman pembangunan.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

MinGW - GNU Minimalis untuk Windows
Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

PhpStorm versi Mac
Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)