Rumah hujung hadapan web tutorial js Memahami Komponen di Ember 2

Memahami Komponen di Ember 2

Feb 18, 2025 am 10:43 AM

Understanding Components in Ember 2

mata utama

    Komponen Ember adalah teras aplikasi Ember, yang membolehkan pemaju untuk menentukan tag HTML khusus, aplikasi khusus dan melaksanakan tingkah laku mereka menggunakan JavaScript. Dalam Ember 2.x, komponen menggantikan pandangan dan pengawal.
  • Komponen Ember mengandungi fail templat hendal dan kelas Ember yang sepadan. Komponen ini boleh digunakan dengan komponen lain, dan bahkan boleh bersarang dalam komponen induk dan mempunyai sifat yang serupa dengan unsur -unsur HTML asli.
  • Data dinamik boleh ditambah kepada aplikasi Ember melalui model (objek yang mewakili data asas aplikasi yang dibentangkan kepada pengguna). Ini membolehkan penciptaan komponen interaktif dan dinamik.
  • Interaksi pengguna boleh ditambah kepada komponen menggunakan tindakan (tindakan yang dihantar ke kelas komponen). Tindakan ini boleh digunakan untuk membuat unsur -unsur interaktif, seperti tab yang boleh diklik yang memaparkan kandungan yang berbeza.

Artikel ini telah dikaji semula oleh Edwin Reynoso dan Nilson Jacques. Terima kasih kepada semua pengulas rakan sebaya SitePoint untuk mendapatkan kandungan SitePoint untuk yang terbaik! Mereka membolehkan anda menentukan tag HTML khusus anda sendiri dan melaksanakan tingkah laku mereka menggunakan JavaScript. Bermula dengan Ember 2.x, komponen akan menggantikan pandangan dan pengawal (tidak ditetapkan) dan merupakan cara yang disyorkan untuk membina aplikasi Ember. Pelaksanaan komponen Ember mengikuti spesifikasi komponen web W3C sebanyak mungkin. Sebaik sahaja elemen tersuai boleh didapati secara meluas dalam penyemak imbas, ia harus mudah untuk memindahkan komponen Ember ke standard W3C dan menjadikannya boleh digunakan oleh rangka kerja lain.

Jika anda ingin mengetahui lebih lanjut tentang mengapa komponen yang boleh diperbaiki menggantikan pengawal dan pandangan, lihat video pendek ini oleh ahli pasukan Ember Core Yehuda Katz dan Tom Dale.

aplikasi penukar tab

Untuk mendapatkan wawasan tentang komponen Ember, kami akan membina widget Switcher Tab. Ini akan mengandungi satu set tab dengan kandungan yang berkaitan. Mengklik pada tab akan memaparkan kandungan tab itu dan menyembunyikan kandungan tab lain. Cukup sederhana? Mari bermula.

Seperti biasa, anda boleh mencari kod untuk tutorial ini pada repositori GitHub kami atau ini Ember Twiddle jika anda ingin bereksperimen dengan kod dalam penyemak imbas anda.

komposisi komponen Ember

Komponen Ember mengandungi fail templat hendal dan kelas Ember yang sepadan. Kelas ini hanya perlu dilaksanakan apabila kita perlu mempunyai interaksi tambahan dengan komponen. Komponen digunakan dengan cara yang sama dengan tag HTML biasa. Apabila kita membina komponen penukar tab, kita akan dapat menggunakannya seperti ini:

Fail templat komponen Ember terletak di direktori App/Templates/Components. Fail kelas terletak di apl/komponen. Kami menggunakan semua huruf kecil, dipisahkan oleh tanda hubung antara kata -kata untuk menamakan komponen Ember. Ini dinamakan sebagai konvensyen, yang boleh mengelakkan konflik nama dengan komponen web HTML masa depan.

Komponen Ember Utama kami akan menjadi Tab-Switcher. Perhatikan bahawa saya bercakap tentang komponen utama, kerana kita akan mempunyai beberapa komponen. Anda boleh menggunakan komponen bersempena dengan komponen lain. Anda juga boleh komponen sarang dalam komponen ibu bapa yang lain. Dalam kes tab-switcher kami, kami akan mempunyai satu atau lebih komponen item tab seperti yang ditunjukkan di bawah:

<code>{{tab-switcher}}{{/tab-switcher}}</code>
Salin selepas log masuk
Salin selepas log masuk

Seperti yang anda lihat, komponen juga boleh mempunyai sifat seperti elemen HTML asli.

Buat Projek Ember 2.x

Untuk mengikuti tutorial ini, anda perlu membuat projek Ember 2.x. Kaedahnya adalah seperti berikut:

Ember dipasang menggunakan npm. Lihat di sini untuk tutorial pada npm.

<code>{{#each tabItems as |tabItem| }}
  {{tab-item item=tabItem 
             setSelectedTabItemAction="setSelectedTabItem" }}
{{/each}}</code>
Salin selepas log masuk
Salin selepas log masuk

Pada masa menulis artikel ini, ini akan memperkenalkan versi 1.13

<code>npm install -g ember-cli
</code>
Salin selepas log masuk
Salin selepas log masuk

Seterusnya, buat aplikasi Ember baru:

<code>ember -v
=> version: 1.13.8
</code>
Salin selepas log masuk
Salin selepas log masuk

Navigasi ke direktori ini dan edit fail Bower.json untuk mengandungi versi terkini Ember, Ember-Data, dan Ember-Load-Initializers:

<code>ember new tabswitcher</code>
Salin selepas log masuk

kembali ke terminal dan jalankan:

<code>{
  "name": "hello-world",
  "dependencies": {
    "ember": "^2.1.0",
    "ember-data": "^2.1.0",
    "ember-load-initializers": "^ember-cli/ember-load-initializers#0.1.7",
    ...
  }
}
</code>
Salin selepas log masuk

Bower boleh meminta anda untuk menghuraikan versi Ember. Pilih versi 2.1 dari senarai yang disediakan dan awalannya dengan tanda seru untuk meneruskan resolusinya kepada Bower.json.

Seterusnya memulakan pelayan pembangunan Ember CLI:

<code>bower install
</code>
Salin selepas log masuk

Navigasi terakhir ke http: // localhost: 4200/dan periksa versi konsol penyemak imbas.

Buat komponen penukar tab

mari kita buat komponen penukar tab menggunakan penjana terbina dalam Ember:

<code>ember server</code>
Salin selepas log masuk

Ini akan membuat tiga fail baru. Salah satunya ialah fail hendal html kami (app/templates/komponen/tab-switcher.hbs), yang kedua adalah fail javascript kelas komponen kami (app/komponen/tab-switcher.js), dan yang terakhir adalah fail ujian (ujian/ integrasi/komponen/tab-switcher-test.js). Komponen ujian tidak berada dalam skop tutorial ini, tetapi anda boleh membaca lebih lanjut mengenainya di laman web Ember.

Sekarang jalankan Ember Server untuk memuatkan pelayan dan menavigasi ke http: // localhost: 4200/. Anda harus melihat mesej selamat datang bertajuk "Selamat Datang ke Ember". Jadi mengapa komponen kami tidak dipaparkan? Nah, kita belum menggunakannya, jadi mari kita gunakan sekarang.

Menggunakan komponen

Buka aplikasi templat aplikasi/templat/aplikasi.hbs. Tambah yang berikut selepas tag H2 menggunakan komponen.

<code>ember generate component tab-switcher</code>
Salin selepas log masuk

Di Ember, komponen boleh digunakan dalam dua cara. Kaedah pertama, yang dipanggil bentuk inline , adalah menggunakannya tanpa sebarang kandungan. Itulah yang kita lakukan di sini. Kaedah kedua dipanggil bentuk blok , yang membolehkan templat hendal dihantar ke komponen dan diberikan templat di mana ungkapan {{yield}} muncul dalam template komponen. Dalam tutorial ini, kami akan berpegang pada bentuk sebaris. Walau bagaimanapun, ini masih tidak menunjukkan apa -apa di skrin. Ini kerana komponen itu sendiri tidak mempunyai apa -apa untuk dipaparkan. Kami boleh mengubahnya dengan menambahkan baris berikut ke fail templat komponen (app/templat/komponen/tab-switcher.hbs):

<code>{{tab-switcher}}{{/tab-switcher}}</code>
Salin selepas log masuk
Salin selepas log masuk

Sekarang, apabila halaman dimuat semula (yang sepatutnya berlaku secara automatik), anda akan melihat teks yang ditunjukkan di atas. Momen yang menarik!

membuat komponen projek tab

Sekarang bahawa kami telah menubuhkan komponen tab-switcher utama kami, mari buat beberapa komponen tab-item untuk bersarang di dalamnya. Kita boleh membuat komponen tab-tab baru seperti ini:

<code>{{#each tabItems as |tabItem| }}
  {{tab-item item=tabItem 
             setSelectedTabItemAction="setSelectedTabItem" }}
{{/each}}</code>
Salin selepas log masuk
Salin selepas log masuk

Sekarang tukar fail hendal komponen baru (app/templat/komponen/tab-item.hbs) ke:

<code>npm install -g ember-cli
</code>
Salin selepas log masuk
Salin selepas log masuk

Seterusnya, mari sarang tiga tab-item dalam komponen tab-switcher utama kami. Tukar Fail Templat Tab-Switcher (App/Templates/Components/Tab-Switcher.hbs) ke:

<code>ember -v
=> version: 1.13.8
</code>
Salin selepas log masuk
Salin selepas log masuk

Seperti yang disebutkan di atas, fungsi pembantu hasil akan menjadikan mana -mana templat hendal yang dihantar kepada komponen kami. Walau bagaimanapun, ini hanya berguna jika kita menggunakan tab-switcher dalam bentuk blok. Oleh kerana kami tidak melakukan ini, kami dapat mengeluarkan fungsi pembantu hasil sepenuhnya.

Sekarang, apabila kita melihat penyemak imbas, kita akan melihat tiga komponen tab-item, semuanya memaparkan "Tajuk Item Tab". Komponen kami kini agak statik, jadi mari tambah beberapa data dinamik.

(selebihnya adalah sama dengan output terdahulu, kecuali bahawa perenggan disusun semula dan dikatakan untuk mengekalkan konsistensi kandungan dan mengelakkan pertindihan. Untuk menjimatkan ruang, output bahagian yang tinggal tidak diulangi di sini.)

Atas ialah kandungan terperinci Memahami Komponen di Ember 2. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

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

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1664
14
Tutorial PHP
1266
29
Tutorial C#
1239
24
Demystifying JavaScript: Apa yang berlaku dan mengapa penting Demystifying JavaScript: Apa yang berlaku dan mengapa penting Apr 09, 2025 am 12:07 AM

JavaScript adalah asas kepada pembangunan web moden, dan fungsi utamanya termasuk pengaturcaraan yang didorong oleh peristiwa, penjanaan kandungan dinamik dan pengaturcaraan tak segerak. 1) Pengaturcaraan yang didorong oleh peristiwa membolehkan laman web berubah secara dinamik mengikut operasi pengguna. 2) Penjanaan kandungan dinamik membolehkan kandungan halaman diselaraskan mengikut syarat. 3) Pengaturcaraan Asynchronous memastikan bahawa antara muka pengguna tidak disekat. JavaScript digunakan secara meluas dalam interaksi web, aplikasi satu halaman dan pembangunan sisi pelayan, sangat meningkatkan fleksibiliti pengalaman pengguna dan pembangunan silang platform.

Evolusi JavaScript: Trend Semasa dan Prospek Masa Depan Evolusi JavaScript: Trend Semasa dan Prospek Masa Depan Apr 10, 2025 am 09:33 AM

Trend terkini dalam JavaScript termasuk kebangkitan TypeScript, populariti kerangka dan perpustakaan moden, dan penerapan webassembly. Prospek masa depan meliputi sistem jenis yang lebih berkuasa, pembangunan JavaScript, pengembangan kecerdasan buatan dan pembelajaran mesin, dan potensi pengkomputeran IoT dan kelebihan.

Enjin JavaScript: Membandingkan Pelaksanaan Enjin JavaScript: Membandingkan Pelaksanaan Apr 13, 2025 am 12:05 AM

Enjin JavaScript yang berbeza mempunyai kesan yang berbeza apabila menguraikan dan melaksanakan kod JavaScript, kerana prinsip pelaksanaan dan strategi pengoptimuman setiap enjin berbeza. 1. Analisis leksikal: Menukar kod sumber ke dalam unit leksikal. 2. Analisis Tatabahasa: Menjana pokok sintaks abstrak. 3. Pengoptimuman dan Penyusunan: Menjana kod mesin melalui pengkompil JIT. 4. Jalankan: Jalankan kod mesin. Enjin V8 mengoptimumkan melalui kompilasi segera dan kelas tersembunyi, Spidermonkey menggunakan sistem kesimpulan jenis, menghasilkan prestasi prestasi yang berbeza pada kod yang sama.

Python vs JavaScript: Keluk Pembelajaran dan Kemudahan Penggunaan Python vs JavaScript: Keluk Pembelajaran dan Kemudahan Penggunaan Apr 16, 2025 am 12:12 AM

Python lebih sesuai untuk pemula, dengan lengkung pembelajaran yang lancar dan sintaks ringkas; JavaScript sesuai untuk pembangunan front-end, dengan lengkung pembelajaran yang curam dan sintaks yang fleksibel. 1. Sintaks Python adalah intuitif dan sesuai untuk sains data dan pembangunan back-end. 2. JavaScript adalah fleksibel dan digunakan secara meluas dalam pengaturcaraan depan dan pelayan.

JavaScript: meneroka serba boleh bahasa web JavaScript: meneroka serba boleh bahasa web Apr 11, 2025 am 12:01 AM

JavaScript adalah bahasa utama pembangunan web moden dan digunakan secara meluas untuk kepelbagaian dan fleksibiliti. 1) Pembangunan front-end: Membina laman web dinamik dan aplikasi satu halaman melalui operasi DOM dan kerangka moden (seperti React, Vue.js, sudut). 2) Pembangunan sisi pelayan: Node.js menggunakan model I/O yang tidak menyekat untuk mengendalikan aplikasi konkurensi tinggi dan masa nyata. 3) Pembangunan aplikasi mudah alih dan desktop: Pembangunan silang platform direalisasikan melalui reaktnatif dan elektron untuk meningkatkan kecekapan pembangunan.

Cara Membina Aplikasi SaaS Multi-Tenant dengan Next.js (Integrasi Frontend) Cara Membina Aplikasi SaaS Multi-Tenant dengan Next.js (Integrasi Frontend) Apr 11, 2025 am 08:22 AM

Artikel ini menunjukkan integrasi frontend dengan backend yang dijamin oleh permit, membina aplikasi edtech SaaS yang berfungsi menggunakan Next.Js. Frontend mengambil kebenaran pengguna untuk mengawal penglihatan UI dan memastikan permintaan API mematuhi dasar peranan

Membina aplikasi SaaS Multi-penyewa dengan Next.js (Integrasi Backend) Membina aplikasi SaaS Multi-penyewa dengan Next.js (Integrasi Backend) Apr 11, 2025 am 08:23 AM

Saya membina aplikasi SaaS multi-penyewa berfungsi (aplikasi edTech) dengan alat teknologi harian anda dan anda boleh melakukan perkara yang sama. Pertama, apakah aplikasi SaaS multi-penyewa? Aplikasi SaaS Multi-penyewa membolehkan anda melayani beberapa pelanggan dari Sing

Dari C/C ke JavaScript: Bagaimana semuanya berfungsi Dari C/C ke JavaScript: Bagaimana semuanya berfungsi Apr 14, 2025 am 12:05 AM

Peralihan dari C/C ke JavaScript memerlukan menyesuaikan diri dengan menaip dinamik, pengumpulan sampah dan pengaturcaraan asynchronous. 1) C/C adalah bahasa yang ditaip secara statik yang memerlukan pengurusan memori manual, manakala JavaScript ditaip secara dinamik dan pengumpulan sampah diproses secara automatik. 2) C/C perlu dikumpulkan ke dalam kod mesin, manakala JavaScript adalah bahasa yang ditafsirkan. 3) JavaScript memperkenalkan konsep seperti penutupan, rantaian prototaip dan janji, yang meningkatkan keupayaan pengaturcaraan fleksibiliti dan asynchronous.

See all articles