Bir Vue projesindeki görünümler ve bileşenler klasörleri arasındaki fark nedir?


128

CLIBir Vue.js projesini başlatmak için komut satırını ( ) kullandım. CLIOluşturulan src/componentsve src/viewsklasör.

Bir Vue projesiyle çalışmamın üzerinden birkaç ay geçti ve klasör yapısı bana yeni görünüyor.

İle oluşturulan bir Vue projesindeki viewsve componentsklasörler arasındaki fark nedir vue-cli?


4
Her ikisinin de tek dosya görünümü bileşenleri olmaları bakımından farklı olduklarını düşünmüyorum. Ancak sayfa görünümleriniz (Home.vue, About.vue, Checkout.vue) bileşenlerinizden (Button.vue, LoadingSpinner.vue vb.) Ayrı tutulabilir
Jeff

Bu, yapıdaki farklılıklara biraz ışık tutuyor
connexo

10
@Jeff sen bir politikacısın, değilse de olmalısın. Operasyon sorusunu tekrarladınız ama bir cevap gibi görünmesini sağladınız. LOL.
PrestonDocks

Yanıtlar:


177

Her şeyden önce, her iki klasör src/componentsve src/viewsVue bileşenlerini içerir.

Temel fark, bazı Vue bileşenlerinin yönlendirme için Görünümler olarak davranmasıdır .

Vue'da yönlendirme ile uğraşırken, genellikle Vue Router ile , bileşende kullanılan mevcut görünümü değiştirmek için yollar tanımlanır <router-view>. Bu rotalar genellikle şurada bulunur src/router/routes.js, burada şöyle bir şey görebiliriz:

import Home from '@/views/Home.vue'
import About from '@/views/About.vue'

export default [
  {
    path: '/',
    name: 'home',
    component: Home,
  },
  {
    path: '/about',
    name: 'about',
    component: About,
  },
]

Altında bulunan bileşenlerin src/componentsbir rotada kullanılması daha az olasıdır, ancak altında bulunan bileşenler src/viewsen az bir yol tarafından kullanılacaktır.


Vue CLI, Vue ekosistemi için standart araç oluşturma temeli olmayı hedefliyor. Çeşitli derleme araçlarının mantıklı varsayılanlarla birlikte sorunsuz çalışmasını sağlar, böylece yapılandırmalarla uğraşarak günler geçirmek yerine uygulamanızı yazmaya odaklanabilirsiniz. Aynı zamanda, çıkarmaya gerek kalmadan her aracın yapılandırmasını değiştirme esnekliği de sunar.

Vue CLI, hızlı Vue.js geliştirmeyi hedefler, işleri basitleştirir ve esneklik sunar. Amacı, farklı beceri seviyelerine sahip ekiplerin yeni bir proje oluşturmasına ve başlamasına olanak sağlamaktır.

Günün sonunda kolaylık ve uygulama yapısı meselesidir .

  • Bazı insanlar Görünümler klasörlerinin bu kurumsal standart şablona src/routerbenzer şekilde olmasını ister .
  • Bazıları buna Görünümler yerine Sayfalar diyor .
  • Bazı kişilerin tüm bileşenleri aynı klasör altında bulunur.

Üzerinde çalıştığınız projeye en uygun uygulama yapısını seçin.


6
Bu% 100 doğru. Uygulamanızı size mantıklı gelen herhangi bir şekilde yapılandırabilirsiniz. Tüm rotalar için kişisel olarak "src / pages" kullanıyorum. Bu klasörde, sitenin her "alanı" için alt klasör oluşturacağım. Örnek "src / pages / Questions" ve bu klasörde, soruların listesine sahip olacak bir index.vue'm olacak. Soru vb. Ekleme sayfası olacak bir add.vue alacağım. Bu "sayfalar" genellikle "sayfayı" oluşturmak için gerekli bileşenleri bir araya getirir. "Src / components" klasörümde gezinme, form öğeleri, özel paylaşılan bileşenler vb. Şeyler için alt klasörler oluşturacağım ...
Tim Wickstrom

Açılır / Modal pencereler gibi bileşenlerin bu kurala göre gittiğini varsayıyorum src/components?
Simon Thiel

@Ricky, Anthone Gore'un 'Full-Stack Vue.js 2 ve Laravel 5' kitabının github'ındaki kaynak koduyla ilgili bir Vue.JS sorusuna bakmanızı isteyebilir miyim? Stackoverflow.com/questions/ 59245577 /… ? OP'nin EDIT bölümüne özellikle bir göz atın
Istiaque Ahmed

Görünümlerin içindeki bileşenlerin bir bileşenler koleksiyonu olduğunu söyleyebilir miyiz? Örneğin, liste görünümüm birden çok bileşene sahip olabilir ve bu bileşenler görünümdeki tek bir bileşenin içinde barındırılıyor / sarılıyor mu?
Aayush

20

Sanırım daha çok bir kongre. Yeniden kullanılabilir bir şey src / components klasöründe tutulabilir, yönlendiriciye bağlı bir şey src / views içinde tutulabilir.


7

Genelde yeniden kullanılabilir görünümlerin src/componentsdizine yerleştirilmesi önerilir . Üstbilgi, Altbilgi, Reklamlar, Izgaralar gibi örnekler veya stilize edilmiş metin kutuları veya düğmeler gibi özel kontroller. Bir görünümün içinden bir veya daha fazla bileşene erişilebilir.

Bir Görünüm bileşen (ler) içerebilir ve bir görünüme aslında gezinme url'si ile erişilmesi amaçlanmıştır. Genellikle yerleştirilirler src/views.

Bileşenlere url yoluyla erişme konusunda kısıtlı olmadığınızı unutmayın. Öğesine herhangi bir bileşen eklemekte router.jsve ona erişmekte özgürsünüz . Ancak bunu yapmayı planlıyorsanız, src/viewsyerleştirmek yerine a konumuna taşıyabilirsiniz src/components.

Bileşenler, asp.net web formlarına benzer şekilde kullanıcı denetimleridir.

Bu, kodunuzu daha iyi bakım ve okunabilirlik için yapılandırmakla ilgilidir.


1

Her iki klasör de bileşenleri içerdiğinden temelde aynıdır, ancak Vue'nun estetiği, sayfalar olarak işlev görecek bileşenlerin (gezinme için benzer sayfaya yönlendirilmiş) /viewsklasörde tutulması ve form alanları gibi yeniden kullanılabilir bileşenlerin /componentsklasörde tutulmasıdır. .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.