Vue.Js Flashcards
How to install Vue and create a Vue project from template?
In terminal write: npm install -g @vue/cli
Then to create a project: Vue create project name
Which function inserts your component into your html?
import { createApp } from Vue
createApp(component name”).mount({html selector})
How to create a Vue.js component?
- Create it in your script as a JS object (rarely used and unintuitive)
- Single file component method - create a separate file with sections : template (html), script (JS), style (CSS), and export it from the file into your main script
Что такое интерполяция во Vue? Как её использовать?
Интерполяция Vue это использование переменных из data() компонента внутри верстки. Используется так: У нас есть компонент, с script фрагментом, который выглядит так: script export default { data(){ return { variable : 0, } } } script
Используем:
template
p what is the value? It’s {{ variable }}! p
template
Каким образом можно добавить обработку нажатия кнопки внутри one file компонента Vue?
Создать функцию обработки нажатия в секции в методе компонента под названием methods script:
export default{ data(){ return { "variable" : 0; } } methods(){ clickprocess(){ this.variable++; } } }
Добавить обработку в template:
button @v-on:click=”clickprocess” button
v-on: click лучше заменить на короткую версию: @click
Как можно легко дебажить vue приложение?
Скачать расширение Vue devtools (beta для третей версии Vue)
Как реализовываться двухстороннее связывание? (Как связать например форму и переменную в компоненте?
С помощью v-bind:attribute и обработчика ввода
Template Form input type=text v-bind:value="variable" @input="processInput" Form Template
export default{ data(){ return { "variable" : 0; } } methods(){ process Input(input){ this.variable = input.value } } }
Process Input метод оптимизируется таким образом:
input type=text v-bind:value=”variable” @input=”variable = $event.target.value”
$event это зарезервированное во Vue значение
How to prevent a Vue form from submitting?
Form @submit.prevent
Как вставить один компонент Vue в другой?
Как передать ему данные?
Нужно импортировать в его секцию script, и зарегистрировать его в components поле экспорта:
script
import Component from “@/components/Component
export default { components:{ Component, Component2 } }
Как передать данные в импортированный компонент?
Нужно использовать директиву v-bind, а внутри самого компонента использовать поле props в экспорте
Компонент родитель:
template
child :data=”parentVar”
template
Импортированный компонент script export default { props: { data: { type: Array, required: true } } }
Можно ли изменять данные, переданные компоненту через props?
Нет
Как называется директива, заменяющая все типы двухстороннего связывания, включающая в себя событие (onclick например) и привязку v-bind?R
V-model = “variable”
Как передать данные из импортированного компонента в компонента родителя?
Сгенерировать событие в компоненте ребенке с помощью emit, и подписаться на это событие в родителе
Пример:
Родитель -
template
child @create=”ProcessCreation” // список аргументов функции - данные, которые отсылает emit в ht,tyrt
template
Ребенок: methods:{ onclick(){ this.$emit('create', this.data); } }
Как поместить что-либо вовнутрь импортированного компонента Vue?
В вёрстке дочернего компонента создать слот для элементов
template div slot slot div template
Как экспортировать сразу все компоненты и не включать их по одному?
Создать отдельный js файл, импортировать их туда, экспортировать обьект с этими всеми компонентами
В основном js файле массивом все зарегистрировать через функцию .component
Как обрабатывать данные в компоненте, который получает их через v-model?
Получить их в props (дефолтное имя переменной будет modelValue, но можно поставить v-model:variableName и в props компонента также поставить variableName) и повесить обработку события.
Как обработать запрос на сервер при открытии страницы Vue?
Лучше всего будет обработать его в хуке жизненного цикла mounted()
Как использовать функционал анимаций, встроенный во Vue?
Завернуть элементы, для которых нужна будет анимация в специальный элемент transition group (больше в документации)
Как динамически добавить элементу класс или инлайн стиль?
используя специальный атрибут Vue “:class” (:style для стиля)
div :class=”{
‘className’: flag===true // условие
}”
Как создать референс на DOM элемент компонента, для использования его в функциях жизненного цикла? Как получить к нему доступ?
Навесить ref с именем на элемент. Доступ получается через специальный обьект this.$refs.имя компонента
div ref=”element” div
mounted(){
console.log(this.$refs.element);
}
Как создать постраничную навигацию во Vue?
Создать файл с названием router.js
В нем создать массив с объектами с полями path и component
Импортировать в него страницы компоненты vue
Создать обьект роутера с помощью функции createRouter
В основном скрипте подключить роутер
В темплейте главного компонента добавить тег router-view
router.js
import Main from “@/pages/Main” // страница, на которую будет перенаправлять
роутер
import {createRouter, createWebHistory} from “vue-router”
const routes = [
{ path:”\user”, component: Main},
{ path:”\nopage”, component: EmptyPage} // путь в адресной строке и имя используемого компонента
]
const router = createRouter(routes, history:createWebHistory(process.env.BASE_URL) // из документации
export default router
main. js
app. use(router).mount(верстка)
Main.vue template div router-view router-view div template
Как создать динамическую страничную навигацию?
В элементе вёрстки, который перенаправляет на другую страницу использовать функцию $router.push(‘добавляемый URL)
пример: div @click=”$router.push(“/page/${id}”)
А в routes роутера добавить путь {path:’/page/:id’, component: UserIDPage}
Можно ли во Vue создавать пользовательские директивы?
Да, можно, подробнее в документации.
Их также нужно импортировать в main скрипт (как и общие компоненты), и затем подключать к приложению с помощью функции app.directive(имя директивы, директива)
Как создать mixin во Vue?
Создать отдельный файл миксина, вставить в него нужный функционал mixin.js exportdefault{ *свойства компонента* //например data(){} }
Вставить его можно, вставив в массив поля mixins его имя в экспорт компонента
Component.vue
export default{
mixins:[mixin]
}