Яка різниця між переглядами та папками компонентів у проекті Vue?


128

Я просто використав командний рядок ( CLI) для ініціалізації проекту Vue.js. CLIСтворив src/componentsі src/viewsпапку.

Минуло кілька місяців, як я працював з проектом Vue, і структура папок мені здається новою.

Яка різниця між папками viewsта componentsпроектом Vue, що генерується vue-cli?


4
Я не думаю, що вони відрізняються тим сенсом, що вони обидва однофайлові компоненти перегляду. Але перегляди вашої сторінки (Home.vue, About.vue, Checkout.vue) можна зберігати окремо від компонентів (Button.vue, LoadingSpinner.vue тощо)
Джефф

Це просвічує деякі відмінності в структурі: blog.pusher.com/new-vue-cli-simplifies-development
connexo

10
@Jeff ти політик, якщо ні, то не повинен бути. Ви щойно повторили запитання Ops, але встигли зробити так, щоб це виглядало як відповідь. ЛОЛ.
PrestonDocks

Відповіді:


177

Перш за все, обидві папки, src/componentsі src/views, містять компоненти Vue.

Ключова відмінність полягає в тому, що деякі компоненти Vue діють як Погляди для маршрутизації.

При роботі з маршрутизацією у Vue, як правило, з маршрутизатором Vue , маршрути визначаються для того, щоб переключити поточний вигляд, що використовується в <router-view>компоненті. Ці маршрути зазвичай розташовані src/router/routes.jsтам, де ми можемо побачити щось подібне:

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,
  },
]

Компоненти, розташовані під, src/componentsмають меншу ймовірність використання в маршруті, тоді як компоненти, розташовані під, src/viewsбудуть використовуватися щонайменше одним маршрутом.


Vue CLI прагне стати стандартною базовою лінією для екосистеми Vue. Це забезпечує безперебійну роботу різних інструментів побудови разом із розумними типовими налаштуваннями, тому ви можете зосередитись на написанні програми, а не витрачати дні на конфлікти. У той же час він все ще пропонує гнучкість налаштування конфігурації кожного інструменту без необхідності витягування.

Vue CLI спрямований на швидкий розвиток Vue.js, він робить прості речі та пропонує гнучкість. Його мета - надати можливість командам різного рівня кваліфікації створити новий проект та розпочати роботу.

Зрештою, це питання зручності та структури застосування .

  • Деяким людям подобається мати папку «Вид» під такою,src/router як на цій коробці.
  • Деякі люди називають це Сторінки замість Перегляди .
  • Деякі люди мають всі свої компоненти в одній папці.

Виберіть структуру програми, яка найкраще відповідає проекту, над яким ви працюєте.


6
Це на 100% правильно. Ви можете структурувати додаток будь-яким способом, який має для вас сенс. Я особисто використовую "src / pages" для всіх маршрутів. У цій папці я створять підпапку для кожної "області" сайту. Приклад "src / pages / questions" і в цій папці я буду мати index.vue, в якому буде список питань. У мене буде add.vue, яка буде сторінкою для додавання питань тощо. Ці "сторінки" зазвичай просто збирають необхідні компоненти, щоб скласти "сторінку". У моїй папці "src / компоненти" я створять підпапки для таких речей, як навігація, елементи форми, користувацькі спільні компоненти тощо ...
Tim Wickstrom

Я припускаю, що такі компоненти, як Popup / Modal Windows, src/componentsвідповідають цій умові?
Саймон Тіль

@ Ricky, чи можу я попросити вас переглянути питання Vue.JS, пов’язаний із вихідним кодом у github книги "Full-Stack Vue.js 2 та Laravel 5" від Anthone Gore тут: stackoverflow.com/questions/ 59245577 /… ? Особливо подивіться на EDIT: розділ ОП
Істіаке Ахмед

Чи можна сказати, що компоненти всередині представлень - це сукупність компонентів? Наприклад, у моєму списку може бути кілька компонентів, і ці компоненти розміщені / загорнуті всередині одного компонента для перегляду?
Аяуш

20

Я думаю, що це більше конвенція. Щось багаторазове використання може зберігатися у папці src / компоненти, а те, що прив’язано до маршрутизатора, може зберігатися у src / views


6

Зазвичай пропонується розмістити перегляди, які можна повторно використовувати src/components каталозі . Такі приклади, як заголовки, колонтитули, оголошення, сітки або будь-які спеціальні елементи управління, люблять стильові текстові поля чи кнопки. Один або більше компонентів можна отримати всередині перегляду.

Перегляд може містити компоненти (и), а перегляд фактично призначений для доступу до URL-адреси навігації. Вони, як правило, поміщені вsrc/views .

Пам’ятайте, що ви не обмежені для доступу до Компонентів через URL. Ви можете безкоштовно додати будь-який компонент до нього router.jsта отримати доступ до нього. Але якщо ви призначені для цього, ви можете перемістити його, src/viewsа не розміщувати src/components.

Компоненти - це керування користувачами аналогічно веб-формам asp.net.

Йдеться лише про структурування коду для кращого обслуговування та читабельності.


1

Обидві папки в основному однакові, оскільки вони обидва містять компоненти, але естетичний Vue полягає в тому, що компоненти, які будуть функціонувати як сторінки (маршрутизовані на подібну сторінку для навігації), зберігаються в /viewsпапці, в той час як компоненти для повторного використання, такі як поля форм, зберігаються в /componentsпапці .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.