You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/v2/guide/index.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -88,7 +88,7 @@ var app2 = new Vue({
88
88
</script>
89
89
{% endraw %}
90
90
91
-
Здесь мы встречаемся с кое-чем новым. Атрибут `v-bind`, который вы видите, называется **директивой**. Директивы имеют префикс `v-`, указывающий на их особую природу. Как вы уже могли догадаться, они применяют к отображаемому DOM особое реактивное поведение, управляемое Vue. В данном примере директива говорит "сохраняй значение title этого элемента актуальным при изменении свойства `message` у инстанса Vue".
91
+
Здесь мы встречаемся с кое-чем новым. Атрибут `v-bind`, который вы видите, называется **директивой**. Директивы имеют префикс `v-`, указывающий на их особую природу. Как вы уже могли догадаться, они применяют к отображаемому DOM особое реактивное поведение, управляемое Vue. В данном примере директива говорит "сохраняй значение title этого элемента актуальным при изменении свойства `message` у экземпляра Vue".
92
92
93
93
Если вы снова откроете консоль JavaScript и введёте `app2.message = 'какое-то новое сообщение'`, вы опять-таки увидите, что связанный код HTML — в данном случае, атрибут `title` — обновился.
94
94
@@ -258,7 +258,7 @@ var app6 = new Vue({
258
258
259
259

260
260
261
-
Во Vue, компонент — это, по сути, инстанс Vue с предустановленными опциями. Создать новый компонент во Vue просто:
261
+
Во Vue, компонент — это, по сути, экземпляр Vue с предустановленными опциями. Создать новый компонент во Vue просто:
262
262
263
263
```js
264
264
// Определяем новый компонент под названием todo-item
Copy file name to clipboardExpand all lines: src/v2/guide/migration-vuex.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -49,7 +49,7 @@ store.watch(
49
49
50
50
## Вызов событий из хранилища <sup>удалено</sup>
51
51
52
-
Инстанс хранилища больше не предоставляет интерфейс вызова событий (`on`,` off`, `emit`). Если вы ранее использовали хранилище в качестве глобальной шины событий - [см. этот раздел](migration.html#dispatch-and-broadcast-removed) инструкций по миграции.
52
+
Экземпляр хранилища больше не предоставляет интерфейс вызова событий (`on`,` off`, `emit`). Если вы ранее использовали хранилище в качестве глобальной шины событий - [см. этот раздел](migration.html#dispatch-and-broadcast-removed) инструкций по миграции.
53
53
54
54
Вместо того чтобы использовать этот интерфейс для отслеживания событий, пробрасываемых самим хранилищем (например, `store.on('mutation', callback)`), представлен новый метод - `store.subscribe`. Типичное использование в плагине выглядит как:
Copy file name to clipboardExpand all lines: src/v2/guide/mixins.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -88,7 +88,7 @@ vm.conflicting() // -> "из самого компонента"
88
88
89
89
## Глобальные примеси
90
90
91
-
Примесь может быть применена и глобально. Но используйте данную возможность осторожно! После применения, примесь окажет влияние на **все**инстансы Vue, создаваемые в дальнейшем. При правильном использовании это можно использовать для вставки логики обработки пользовательских опций:
91
+
Примесь может быть применена и глобально. Но используйте данную возможность осторожно! После применения, примесь окажет влияние на **все**экземпляры Vue, создаваемые в дальнейшем. При правильном использовании это можно использовать для вставки логики обработки пользовательских опций:
92
92
93
93
```js
94
94
// добавляем обработчик для пользовательской опции `myOption`
@@ -107,7 +107,7 @@ new Vue({
107
107
// -> "hello!"
108
108
```
109
109
110
-
<pclass="tip">Используйте глобальные примеси с осторожностью, поскольку они влияют на все до единого создаваемые инстансы Vue, включая внешние компоненты. В большинстве случаев их стоит использовать только для обработки пользовательских опций, подобно примеру выше. Неплохой идеей будет их оформление в виде [плагинов](plugins.html), что позволит избежать дублирования кода.</p>
110
+
<pclass="tip">Используйте глобальные примеси с осторожностью, поскольку они влияют на все до единого создаваемые экземпляры Vue, включая внешние компоненты. В большинстве случаев их стоит использовать только для обработки пользовательских опций, подобно примеру выше. Неплохой идеей будет их оформление в виде [плагинов](plugins.html), что позволит избежать дублирования кода.</p>
Copy file name to clipboardExpand all lines: src/v2/guide/plugins.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,7 +14,7 @@ order: 18
14
14
15
15
3. Добавляющие опции компонентов посредством глобальной примеси, например [Vuex](https://github.com/vuejs/vuex)
16
16
17
-
4. Добавляющие методы инстанса Vue через Vue.prototype.
17
+
4. Добавляющие методы экземпляра Vue через Vue.prototype.
18
18
19
19
5. Библиотеки, предоставляющие собственные API, комбинируя вышеперечисленные возможности, например [Vue-router](https://github.com/vuejs/vue-router)
20
20
@@ -43,7 +43,7 @@ MyPlugin.install = function (Vue, options) {
Copy file name to clipboardExpand all lines: src/v2/guide/reactivity.md
+6-6Lines changed: 6 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,17 +8,17 @@ order: 12
8
8
9
9
## Как отслеживаются изменения
10
10
11
-
Когда простой JavaScript-объект передаётся в инстанс Vue в качестве опции `data`, Vue обходит все его поля и превращает их в пары геттер/сеттер, используя [Object.defineProperty](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty). Эта возможность появилась в JavaScript только начиная с версии ES5, и в более ранних версиях её эмулировать не получится — по этой-то причине Vue и не поддерживает IE8 и ниже.
11
+
Когда простой JavaScript-объект передаётся в экземпляр Vue в качестве опции `data`, Vue обходит все его поля и превращает их в пары геттер/сеттер, используя [Object.defineProperty](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty). Эта возможность появилась в JavaScript только начиная с версии ES5, и в более ранних версиях её эмулировать не получится — по этой-то причине Vue и не поддерживает IE8 и ниже.
12
12
13
13
Геттеры и сеттеры не видны пользователю, но именно они являются тем внутренним механизмом, который позволяет Vue отслеживать зависимости и изменения данных. К сожалению, при таком подходе выведенные в консоль браузера геттеры и сеттеры выглядят не так, как обычные объекты, поэтому для более наглядной визуализации лучше использовать [инструменты разработчика Vue-devtools](https://github.com/vuejs/vue-devtools).
14
14
15
-
К каждому инстансу компонента приставлен связанный с ним **инстанс наблюдателя**, который помечает все поля, затронутые при рендеринге компонента, как зависимости. В дальнейшем, когда вызывается сеттер поля, помеченного как зависимость, этот сеттер уведомляет наблюдателя, который в свою очередь инициирует повторный рендеринг компонента.
15
+
К каждому экземпляру компонента приставлен связанный с ним **экземпляр наблюдателя**, который помечает все поля, затронутые при рендеринге компонента, как зависимости. В дальнейшем, когда вызывается сеттер поля, помеченного как зависимость, этот сеттер уведомляет наблюдателя, который в свою очередь инициирует повторный рендеринг компонента.
16
16
17
17

18
18
19
19
## Особенности отслеживания изменений
20
20
21
-
В силу ограничений современного JavaScript (и отказа от `Object.observe`), Vue **не может отследить добавление или удаление свойства объекта**. Чтобы поле стало реактивным, Vue превращает его пару геттер/сеттер в ходе инициализации инстанса. Поэтому все поля должны изначально быть заданы в объекте `data`. Например:
21
+
В силу ограничений современного JavaScript (и отказа от `Object.observe`), Vue **не может отследить добавление или удаление свойства объекта**. Чтобы поле стало реактивным, Vue превращает его пару геттер/сеттер в ходе инициализации экземпляра. Поэтому все поля должны изначально быть заданы в объекте `data`. Например:
22
22
23
23
```js
24
24
var vm =newVue({
@@ -32,13 +32,13 @@ vm.b = 2
32
32
// `vm.b` НЕ реактивно
33
33
```
34
34
35
-
Во Vue нельзя динамически добавлять новые корневые реактивные свойства в уже существующий инстанс. Тем не менее, можно добавить реактивное свойство во вложенные объекты, используя метод `Vue.set(object, key, value)`:
35
+
Во Vue нельзя динамически добавлять новые корневые реактивные свойства в уже существующий экземпляр. Тем не менее, можно добавить реактивное свойство во вложенные объекты, используя метод `Vue.set(object, key, value)`:
36
36
37
37
```js
38
38
Vue.set(vm.someObject, 'b', 2)
39
39
```
40
40
41
-
Также можно использовать метод инстанса`vm.$set`, который представляет собой псевдоним к глобальному `Vue.set`:
41
+
Также можно использовать метод экземпляра`vm.$set`, который представляет собой псевдоним к глобальному `Vue.set`:
42
42
43
43
```js
44
44
this.$set(this.someObject, 'b', 2)
@@ -97,7 +97,7 @@ Vue.nextTick(function () {
97
97
})
98
98
```
99
99
100
-
Существует также метод инстанса`vm.$nextTick()`, особенно подходящий для использования внутри компонентов, поскольку он не требует обращения к глобальной переменной `Vue`, а также автоматически связывает контекст `this` коллбэка с текущим инстансом Vue:
100
+
Существует также метод экземпляра`vm.$nextTick()`, особенно подходящий для использования внутри компонентов, поскольку он не требует обращения к глобальной переменной `Vue`, а также автоматически связывает контекст `this` коллбэка с текущим экземпляром Vue:
Copy file name to clipboardExpand all lines: src/v2/guide/ssr.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -325,7 +325,7 @@ Vue.component({
325
325
326
326
Если вы хотите действительно хорошо разобраться в SSR сложных приложений, мы советуем ознакомиться со следующими ресурсами:
327
327
328
-
-[документация vue-server-renderer](https://www.npmjs.com/package/vue-server-renderer#api): более подробно о том, о чём мы уже здесь говорили, а также по более продвинутым темам, таким как [предотвращение cross-request-загрязнения](https://www.npmjs.com/package/vue-server-renderer#why-use-bundlerenderer) и [и добавление отдельной серверной сборки](https://www.npmjs.com/package/vue-server-renderer#creating-the-server-bundle)
328
+
-[документация vue-server-renderer](https://www.npmjs.com/package/vue-server-renderer#api): более подробно о том, о чём мы уже здесь говорили, а также по более продвинутым темам, таким как [предотвращение cross-request-загрязнения](https://www.npmjs.com/package/vue-server-renderer#why-use-bundlerenderer) и [добавление отдельной серверной сборки](https://www.npmjs.com/package/vue-server-renderer#creating-the-server-bundle)
329
329
-[vue-hackernews-2.0](https://github.com/vuejs/vue-hackernews-2.0): подробный пример, объединяющий все основные библиотеки и концепции Vue в единое приложение
Copy file name to clipboardExpand all lines: src/v2/guide/typescript.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -69,7 +69,7 @@ export default {
69
69
70
70
К сожалению, есть несколько ограничений:
71
71
72
-
-__TypeScript не может вывести все типы из API Vue.__ К примеру, он не знает, что свойство `message`, возвращаемое в нашей функции `data` будет добавлено к инстансу`MyComponent`. Это означает, что если мы присвоим число или булево значение переменной `message`, проверка синтаксиса и компиляторы не выбросят ошибку о том, что это должна была быть строка.
72
+
-__TypeScript не может вывести все типы из API Vue.__ К примеру, он не знает, что свойство `message`, возвращаемое в нашей функции `data` будет добавлено к экземпляру`MyComponent`. Это означает, что если мы присвоим число или булево значение переменной `message`, проверка синтаксиса и компиляторы не выбросят ошибку о том, что это должна была быть строка.
73
73
74
74
- По причине этого ограничения __аннотирование типов может быть громоздким__. Единственной причиной, по которой нам необходимо вручную объявлять переменную `message` строкой, является неспособность TypeScript вывести тип в данном случае.
75
75
@@ -85,10 +85,10 @@ import Component from 'vue-class-component'
0 commit comments