Bagaimana merancang aplikasi Ember.js

105

Sulit untuk mengikuti evolusi Ember JS saat mendekati (dan tercapai!) Versi 1.0.0. Tutorial dan dokumentasi telah datang dan pergi, menyebabkan banyak kebingungan tentang praktik terbaik dan maksud dari pengembang asli.

Pertanyaan saya sebenarnya adalah: Apa praktik terbaik untuk Ember JS? Apakah ada tutorial yang diperbarui atau contoh kerja yang menunjukkan bagaimana Ember JS dimaksudkan untuk digunakan? Contoh kode akan sangat bagus!

Terima kasih untuk semuanya, terutama pengembang Ember JS!

Craig Labenz
sumber
7
Pertanyaan ini menempati urutan teratas untuk pencarian Google untuk 'tutorial EmberJS', tetapi tidak benar-benar menjawab pertanyaan itu. Ini benar-benar pertanyaan tentang 2 tautan di internet. Apakah Anda mempertimbangkan untuk mengubah pertanyaan ini agar sesuai dengan judulnya? Saya pikir jawaban terbaik adalah yang benar-benar membawa seseorang melalui proses pembuatan aplikasi dengan EmberJS.
George Stocker

Jawaban:

17

Ada proyek penting yang harus dimanfaatkan oleh pengembang Ember.js baru dan lama:

Ember-CLI

Meskipun memang membutuhkan beberapa tingkat kenyamanan dengan baris perintah, Anda dapat menghasilkan proyek Ember modern dengan praktik terbaik yang direkomendasikan komunitas dalam hitungan detik.

Meskipun bermanfaat untuk menyiapkan proyek Ember.js dengan cara yang sulit seperti dalam jawaban Mike Grassotti, Anda tidak boleh melakukannya untuk kode produksi. Terutama ketika kami memiliki proyek yang kuat dan mudah digunakan seperti Ember-CLIuntuk menunjukkan kepada kami jalan bahagia yang disetujui Yehuda .

Matt Jensen
sumber
1
Terima kasih Matt! Saya telah membuat ini menjadi jawaban yang diterima untuk mengarahkan lalu lintas ke Ember-CLI.
Craig Labenz
Baru saja mulai menggunakan Ember untuk pertama kalinya beberapa hari yang lalu, dan Ember-CLI cukup mudah untuk dimulai dan digunakan. Satu-satunya downside adalah bahwa hal itu memperkenalkan banyak kompleksitas yang mungkin tidak Anda inginkan / butuhkan (meskipun kompleksitas itu dapat diabaikan, jika Anda adalah individu yang dapat dipercaya). Bower dan JSHint dan Ember-CLI dan Travis CI dan EditorConfig dan file konfigurasi Git, bersama dengan hal-hal lain seperti Brokoli untuk aset dan PhantomJS untuk pengujian ...
JKillian
Poin yang adil @JKillian. Saya tahu ada kekhawatiran tentang kurva belajar Ember, karena alasan itu. Meskipun Ember-cli memang memperkenalkan beberapa kompleksitas (Ember-data & Broccoli), ini menghilangkan kebingungan yang signifikan seputar persyaratan vendor dan penataan proyek Anda. Jadi ada sebutir garam.
Matt Jensen
1
Sepenuhnya setuju dengan jalan bahagia Ember CLI! Panduan memulai cepat Mike Grassotti di bawah ini akan menjadi "langkah berikutnya" yang sempurna jika tidak terlalu ... ketinggalan zaman. Bagi mereka yang ingin membangun aplikasi Ember 2.0, hal terbaik, sejauh praktik terbaik berjalan, adalah memastikan Anda memahami konsep inti: model, rute, layanan, komponen, dll. Dokumen Ember adalah sumber daya yang hebat, tetapi karena saya belum menemukan satu pun panduan yang diperbarui yang menghubungkan semua konsep (apalagi dengan aplikasi sampel) Saya memutuskan untuk menulis ini: emberigniter.com/5-essential-ember-2.0-concepts
Frank Treacy
110

Panduan Memulai Cepat Ember.js Minimum yang Layak dari Mike Grassotti

Panduan memulai cepat ini akan membawa Anda dari nol ke sedikit-lebih-dari-nol dalam beberapa menit. Setelah selesai, Anda akan merasa yakin bahwa ember.js benar-benar berfungsi dan semoga cukup tertarik untuk mempelajari lebih lanjut.

PERINGATAN: Jangan hanya mencoba panduan ini lalu berpikir ember-sucks menyebabkan "Saya bisa menulis panduan memulai dengan lebih baik di jQuery atau Fortran" atau apa pun. Saya tidak mencoba menjual Anda dengan bara api atau apa pun, panduan ini lebih dari sekadar halo dunia.

Langkah 0 - Lihat jsFiddle

jsFiddle ini memiliki semua kode dari jawaban ini

Langkah 1 - Sertakan ember.js dan pustaka lain yang diperlukan

Ember.js membutuhkan jQuery dan Handlebars. Pastikan pustaka tersebut dimuat sebelum ember.js:

<script type='text/javascript' src='http://code.jquery.com/jquery-1.9.1.js'></script>
<script type='text/javascript' src="http://cdnjs.cloudflare.com/ajax/libs/handlebars.js/1.0.0-rc.3/handlebars.js"></script>
<script type='text/javascript' src="http://cdnjs.cloudflare.com/ajax/libs/ember.js/1.0.0-rc.1/ember.js"></script>

Langkah 2 - Jelaskan antarmuka pengguna aplikasi Anda menggunakan satu atau lebih template setang

Secara default, ember akan menggantikan badan halaman html Anda menggunakan konten dari satu atau lebih templat handlbars. Suatu hari nanti template ini akan berada dalam file .hbs terpisah yang dikumpulkan oleh sprocket atau mungkin grunt.js. Untuk saat ini kami akan menyimpan semuanya dalam satu file dan menggunakan tag skrip.

Pertama, mari tambahkan satu applicationtemplate:

<script type="text/x-handlebars" data-template-name="application">
  <div class="container">
    <h1>Ember.js is easy?<small> Minimum Viable Ember.js QuickStart Guide</small></h1>
    <p>{{message}}</p>
  </div>
</script>

Langkah 3 - Inisialisasi aplikasi ember Anda

Cukup tambahkan blok skrip lain dengan App = Ember.Application.create({});untuk memuat ember.js dan menginisialisasi aplikasi Anda.

<script type='text/javascript'>
  App = Ember.Application.create({});
</script>

Hanya itu yang Anda butuhkan untuk membuat aplikasi ember dasar, tetapi itu tidak terlalu menarik.

Langkah 4: Tambahkan pengontrol

Ember mengevaluasi setiap template setang dalam konteks pengontrol. Jadi applicationtemplate memiliki kecocokan ApplicationController. Pembuatan Ember secara otomatis jika Anda tidak menentukannya, tetapi di sini mari kita sesuaikan untuk menambahkan properti pesan.

<script type='text/javascript'>
App.ApplicationController = Ember.Controller.extend({
    message: 'This is the application template' 
});
</script>

Langkah 5: Tentukan rute + lebih banyak pengontrol dan templat

Router Ember memudahkan untuk menggabungkan template / pengontrol ke dalam aplikasi.

<script type='text/javascript'>
  App.Router.map(function() {
    this.route("index", { path: "/" });
    this.route("list", { path: "/list" });
  });

  App.IndexController = Ember.Controller.extend({
    message: 'Hello! See how index.hbs is evaluated in the context of IndexController' 
  });

  App.ListRoute = Ember.Route.extend({
    setupController: function(controller) {
      controller.set('content', ['angular.js', 'backbone.js', 'ember.js']);
    }
  });

</script>

Untuk membuat ini bekerja, kami memodifikasi template aplikasi kami dengan menambahkan {{outlet}}helper. Router ember akan membuat template yang sesuai ke outlet tergantung pada rute pengguna. Kami juga akan menggunakan {{linkTo}}helper untuk menambahkan tautan navigasi.

    <script type="text/x-handlebars" data-template-name="application">
      <div class="container">
          <h1>Ember.js is easy?<small> Minimum Viable Ember.js QuickStart Guide</small></h1>
        <p>{{message}}</p>
        <div class="row">
          {{#linkTo index class="span3 btn btn-large btn-block"}}Home{{/linkTo}}
          {{#linkTo list class="span3 btn btn-large btn-block"}}List{{/linkTo}}
        </div>
        {{outlet}}
      </div>
    </script>

    <script type="text/x-handlebars" data-template-name="list">
      <h3 class="demo-panel-title">This is the list template</h3>
      <ul>
      {{#each item in content}}
          <li>{{item}}</li>
      {{/each}}
       </ul>
    </script>

    <script type="text/x-handlebars" data-template-name="index">
      <h3 class="demo-panel-title">This is the index template</h3>
      <p>{{message}}</p>
    </script>

Selesai!

Contoh kerja aplikasi ini tersedia di sini .

Anda dapat menggunakan jsFiddle ini sebagai titik awal untuk aplikasi ember Anda sendiri

Langkah selanjutnya...

  • Baca Panduan Ember
  • Mungkin membeli screencast Peepcode
  • Ajukan pertanyaan di sini di Stack Overflow atau di ember IRC

Untuk referensi, jawaban asli saya:


Pertanyaan saya adalah untuk semua pakar Ember.js, dan tentunya untuk masing-masing penulis tutorial: Kapan saya harus menggunakan pola desain dari satu tutorial, dan kapan dari yang lain?

Kedua tutorial ini mewakili praktik terbaik pada saat ditulis. Yang pasti ada sesuatu yang bisa dipelajari dari masing-masing, sayangnya keduanya ditakdirkan ketinggalan zaman karena ember.js bergerak sangat cepat. Dari keduanya, arus Trek jauh lebih banyak.

Komponen apa dari masing-masing yang merupakan preferensi pribadi, dan komponen apa yang terbukti penting saat aplikasi saya matang? Jika Anda mengembangkan aplikasi ember baru, saya tidak akan merekomendasikan mengikuti pendekatan Code Lab. Itu terlalu kuno untuk digunakan.

Dalam desain Code Lab, Ember tampaknya lebih dekat dengan yang ada di dalam aplikasi (meskipun itu 100% dari JS kustomnya), sedangkan aplikasi Trek tampaknya lebih hidup dalam Ember.

Komentar Anda sangat menarik. CodeLab memanfaatkan komponen inti ember dan mengaksesnya dari lingkup global. Saat ditulis (9 bulan yang lalu), ini cukup umum, tetapi praktik terbaik saat ini untuk menulis aplikasi bara lebih dekat dengan apa yang dilakukan Trek.

Meskipun demikian, bahkan tutorial Trek menjadi ketinggalan zaman. Komponen yang diperlukan ApplicationViewdan ApplicationControllersekarang dibuat oleh kerangka itu sendiri.

Sumber daya terbaru sejauh ini adalah kumpulan panduan yang dipublikasikan di http://emberjs.com/guides/ - panduan tersebut telah ditulis dari awal selama beberapa minggu terakhir dan mencerminkan versi ember terbaru (pra-rilis).

Saya juga akan memeriksa proyek penghapusan trek di sini: https://github.com/trek/ember-todos-with-build-tools-tests-and-other-modern-conveniences

EDIT :

@ sly7_7: Saya juga akan memberikan contoh lain, menggunakan ember-data https://github.com/dgeb/ember_data_example

Mike Grassotti
sumber
1
Saya awalnya menulis Code Lab sebagai cara untuk membuat orang-orang meningkatkan kerangka kerja Ember dan MVC, tetapi sayangnya, saya belum punya waktu untuk mempertahankannya sejak itu, dan sepertinya sudah cukup berubah sehingga orang lain telah menciptakan sumber daya yang lebih baik. Secara pribadi, saya sejak beralih menggunakan Angular untuk sebagian besar proyek saya, saya merasa itu membutuhkan lebih sedikit JavaScript dan sedikit lebih mudah untuk membungkus kepala saya. Pilihan MVC Anda sepenuhnya bersifat pribadi, jadi jangan biarkan saya mempengaruhi Anda.
PeteLe
1
Pergi ke emberjs.com/guides dan meskipun penjelasannya dilakukan dengan sangat baik, contoh tidak cukup lengkap untuk dijalankan sebagaimana adanya dan menderita referensi kognitif maju, yang merepotkan bagi seseorang yang datang dengan benar-benar segar. Apakah mereka masih diperbarui, atau apakah ada sumber daya gratis?
Walt Stoneburner
1
Yang pasti mereka masih diperbarui. Untuk hari ini, mungkin cara terbaik untuk memulai dengan cepat adalah memeriksa screencast kode intip di: peepcode.com/products/emberjs
Mike Grassotti
2
@MikeGrassotti Adakah cara untuk mengedit jawaban Anda untuk menunjukkan kode sumber untuk memulai dengan EmberJS? Mungkin petunjuk langkah demi langkah untuk membuat aplikasi "Hello World" dengan EmberJS?
George Stocker
2
@MikeGrassotti Wiki tag ember.js harus diperbarui untuk memasukkan pertanyaan dan jawaban ini
MilkyWayJoe
4

Saya akan sangat merekomendasikan menggunakan Yeoman dan generator bara yang menyertainya. Di luar kotak, Anda mendapatkan semua alat yang dibutuhkan untuk mengembangkan, menguji, dan menyiapkan aplikasi untuk produksi. Sebagai bonus tambahan, Anda akan dapat membagi template tampilan Anda menjadi beberapa file dan memulai dengan struktur direktori cerdas yang akan memfasilitasi Anda dalam membuat basis kode yang dapat dipelihara.

Saya telah menulis tutorial tentang cara mengaktifkan dan menjalankannya dalam waktu sekitar 5 menit. Cukup instal node.js dan ikuti di sini

Matthew Lehner
sumber
1

Ikuti juga tutorial gratis ini berjudul Let's Learn Ember dari Tuts + Premium. Ini gratis karena dari free coursesseri mereka . Kursus ini, sebagaimana orang-orang Tuts menyebutnya, dibagi menjadi empat belas bab yang mudah diikuti.

Saya harap ini membantu.

Salam,

Junaid Qadir
sumber
0

Saya lebih suka pendekatan petani arang. Ini memberi Anda banyak hal di luar kotak termasuk:

  • arsitektur folder yang bagus menggunakan pendekatan 'modul'.
  • netral
  • live reload
  • mengecilkan
  • jelek
  • jshint

dan lainnya.

dan sangat mudah untuk mengaturnya, cukup jalankan yo charcoaluntuk membuat aplikasi lalu yo charcoal:module myModuletambahkan modul baru.

info lebih lanjut di sini: https://github.com/thomasboyt/charcoal

Ben
sumber
0

Saya baru saja membuat Starter Kit, jika Anda ingin menggunakan EmberJS terbaru dengan Ember-Data, dengan mesin template Emblem. Semua dibungkus dengan Middleman, sehingga Anda dapat mengembangkan dengan CoffeeScript. Semua yang ada di GitHub saya: http://goo.gl/a7kz6y

Zoltan
sumber
0

Meskipun Flame di Ember.js yang sudah ketinggalan zaman masih merupakan tutorial yang bagus untuk seseorang yang melihat ember untuk pertama kalinya.

Steve
sumber
0

Saya telah mulai membuat serangkaian video yang dimulai dari sebelum Ember dan mengembangkan penggunaan Ember dalam kemarahan dalam kasus penggunaan serius untuk hal-hal dunia nyata.

Jika Anda tertarik untuk melihat ini populer (saya sangat senang akhirnya mempublikasikannya jika ada minat) Anda pasti harus membuka pos yang saya buat dan tekan "suka" (atau cukup beri komentar di sini, Saya kira):

http://discuss.emberjs.com/t/making-ember-easier-to-approach-aka-crazy-screencasts-videos-that-will-stick-in-your-mind-for-learning-ember/5284

Saya sangat ingin membuatnya untuk membantu komunitas berkembang, tetapi juga untuk membantu orang belajar bagaimana membangun situs web standar dengan cara yang mudah.

Julian Leviston
sumber