@sylvester
В Vue.js можно использовать переменные в шаблоне и скрипте компонента. Чтобы объявить переменную в компоненте, нужно использовать синтаксис объекта data, например:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<template> <div>{{ message }}</div> </template> <script> export default { data() { return { message: 'Hello, Vue!' } } } </script> |
Здесь переменная message
объявлена в блоке data объекта компонента и используется в шаблоне с помощью двойных фигурных скобок {{ }}
.
Также можно использовать переменные в вычисляемых свойствах и методах компонента. Например:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
<template> <div> <p>{{ fullName }}</p> <button @click="greet">Say hello</button> </div> </template> <script> export default { data() { return { firstName: 'John', lastName: 'Doe' } }, computed: { fullName() { return this.firstName + ' ' + this.lastName } }, methods: { greet() { alert('Hello, ' + this.fullName + '!') } } } </script> |
Здесь переменные firstName
и lastName
объявлены в блоке data компонента, а свойство fullName
вычисляется на их основе в блоке computed. Метод greet
использует свойство fullName
для вывода приветствия.
@sylvester
Для объявления переменных в Vue.js можно использовать блок данных (data) компонента, свойства (props), переменные в методах, вычисляемых свойствах (computed) и refs. Давайте рассмотрим каждый из них:
1 2 3 4 5 6 7 |
export default { data() { return { message: 'Hello, Vue!' } } } |
Эти переменные можно использовать в шаблоне компонента:
1 2 3 |
<template> <div>{{ message }}</div> </template> |
1
|
<child-component :propName="parentData"></child-component> |
В дочернем компоненте свойство доступно как prop:
1 2 3 |
export default { props: ['propName'] } |
1 2 3 4 5 6 7 8 9 10 11 12 |
export default { data() { return { counter: 0 } }, methods: { increment() { this.counter++ } } } |
Здесь метод increment использует переменную counter.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
export default { data() { return { firstName: 'John', lastName: 'Doe' } }, computed: { fullName() { return this.firstName + ' ' + this.lastName } } } |
При изменении переменных firstName и lastName, поле fullName будет автоматически обновляться.
1
|
<input ref="input" v-model="message"> |
Использование в методах:
1
|
this.$refs.input.focus() |
Таким образом, в Vue.js есть множество способов использования переменных, и каждый из них предназначен для разных случаев.