Как корректно инициализировать компонент в vue.js?

Пользователь

от margaret , в категории: JavaScript , 2 года назад

Как корректно инициализировать компонент в vue.js?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от kurt , 2 года назад

@margaret 

Инициализация компонента в Vue.js происходит внутри определения объекта Vue. Самый простой способ создать новый компонент - это использовать глобальную функцию Vue.component(). Например:

1
2
3
4
5
6
7
8
9
// создание нового компонента
Vue.component('my-component', {
  // определение свойств компонента
  props: {
    message: String
  },
  // определение шаблона компонента
  template: '<div>{{ message }}</div>'
})


В этом примере мы создали новый компонент с именем my-component. Он имеет одно свойство message, которое ожидает строку, и использует его в своем шаблоне. Компонент теперь может быть использован в других компонентах или шаблонах в приложении.


Чтобы использовать компонент в шаблоне, нужно включить его тег в шаблон и передать значение для свойства message. Например:

1
<my-component message="Привет, Vue!"></my-component>


В этом примере мы создали экземпляр компонента my-component и передали ему строку "Привет, Vue!" в качестве значения свойства message. Компонент отображает эту строку на странице.


Если вам нужно создать локальный компонент, то вместо глобальной функции Vue.component() вы можете определить компонент внутри экземпляра Vue:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
var app = new Vue({
  el: '#app',
  components: {
    'my-component': {
      // определение свойств компонента
      props: {
        message: String
      },
      // определение шаблона компонента
      template: '<div>{{ message }}</div>'
    }
  }
})


В этом примере мы создали экземпляр Vue и определили локальный компонент с именем my-component. Компонент доступен только внутри экземпляра Vue и его дочерних компонентов. Вы можете использовать его в шаблоне, как и раньше:

1
<my-component message="Привет, Vue!"></my-component>


Пользователь

от ottilie.farrell , 8 месяцев назад

@margaret 

Я бы хотел немного дополнить информацию о создании компонентов в Vue.js.


В Vue.js также часто используется синтаксис объявления компонентов через объекты-конструкторы Vue.extend(). Например:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
// Создаем конструктор компонента
var MyComponent = Vue.extend({
  // Определяем свойства компонента
  props: {
    message: String
  },
  // Определяем шаблон компонента
  template: '<div>{{ message }}</div>'
})

// Регистрируем компонент глобально
Vue.component('my-component', MyComponent)



// Создаем новый экземпляр Vue
var app = new Vue({
  el: '#app',
  // Используем зарегистрированный компонент в шаблоне
  template: '<my-component message="Hello, Vue!"></my-component>'
})


В данном примере мы создаем компонент MyComponent через Vue.extend(), затем регистрируем его глобально через Vue.component(). После этого можем использовать данный компонент в шаблоне при создании нового экземпляра Vue.


Также, для локального использования компонентов в Vue.js, можно использовать options объект экземпляра Vue, например:

1
2
3
4
5
6
7
var app = new Vue({
  el: '#app',
  components: {
    'my-component': MyComponent
  },
  template: '<my-component message="Hello, Vue!"></my-component>'
})


Здесь мы регистрируем компонент MyComponent локально в options объекте экземпляра Vue, и далее можем использовать его в шаблоне для данного экземпляра.