Skip to content

Commit db83fff

Browse files
authored
Merge pull request vuejs#106 from Alex-Sokolov/master
Свежие правки + одно изменение откатывают
2 parents 8f8a67f + 7516f1d commit db83fff

File tree

2 files changed

+12
-14
lines changed

2 files changed

+12
-14
lines changed

src/v2/api/index.md

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -442,17 +442,15 @@ type: api
442442

443443
### computed
444444

445-
- **Тип:** `{ [key: string]: Function | { get: Function, set: Function, cache: Boolean } }`
445+
- **Тип:** `{ [key: string]: Function | { get: Function, set: Function } }`
446446

447447
- **Подробности:**
448448

449449
Вычисляемые свойства, которые будут подмешаны к экземпляру Vue. В геттерах и сеттерах `this` будет указывать на экземпляр Vue.
450450

451451
<p class="tip">Обратите внимание, что __вам не стоит использовать стрелочные функции при определении вычисляемых свойств__ (напр. `aDouble: () => this.a * 2`). Поскольку стрелочные функции связываются с родительским контекстом, `this` не будет указывать на экземпляр Vue, и `this.a` окажется неопределённым.</p>
452452

453-
Вычисляемые свойства кешируются и повторно вычисляются только при изменении реактивных зависимостей. Обратите внимание, что если определённая зависимость выходит за область видимости экземпляра (т.е не реактивная), то вычисляемое свойство не будет обновляться. В этой ситуации кеширование можно отключить с помощью опции `cache: false`. Тем не менее, так как зависимость не реактивная, её изменение не будет вызывать обновление DOM.
454-
455-
В большинстве ситуаций `cache: false` не станет идеальным решением. По возможности лучше переносить внешние данные в систему реактивности. Например, если вычисляемое свойство зависит от размера окна, вы можете хранить эту информацию в `data`, а затем использовать событие `resize` чтобы поддерживать значение актуальным. Теперь данные реактивны!
453+
Вычисляемые свойства кешируются и повторно вычисляются только при изменении реактивных зависимостей.
456454

457455
- **Пример:**
458456

@@ -669,7 +667,7 @@ type: api
669667

670668
Вызывается после того, как виртуальный DOM был обновлён из-за изменения данных.
671669

672-
DOM компонента уже будет обновлён к моменту вызова этого хука, поэтому можно выполнять зависящие от DOM операции. Старайтесь избегать изменения состояния в этом хуке, чтобы не попасть в бесконечный цикл обновления.
670+
DOM компонента будет уже обновлён к моменту вызова этого хука, поэтому вы можете выполнять операции связанные с DOM здесь. Тем не менее, в большинстве случаев старайтесь избегать изменения состояния в этом хуке. Для реагирования на изменение состояния лучше использовать [вычисляемые свойства](#computed) или [отслеживание с помощью watcher](#watch).
673671

674672
**При рендеринге на стороне сервера этот хук не вызывается.**
675673

themes/vue/source/js/common.js

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -34,23 +34,23 @@
3434
}
3535
}
3636

37-
function escapeCharacters (hash) {
37+
function parseRawHash (hash) {
3838
// Remove leading hash
3939
if (hash.charAt(0) === '#') {
4040
hash = hash.substr(1)
4141
}
4242

43-
return '#' + CSS.escape(hash)
43+
// Escape characthers
44+
try {
45+
hash = decodeURIComponent(hash)
46+
} catch (e) {}
47+
return CSS.escape(hash)
4448
}
4549

4650
function initLocationHashFuzzyMatching () {
47-
var rawHash = window.location.hash;
51+
var rawHash = window.location.hash
4852
if (!rawHash) return
49-
try {
50-
hash = escapeCharacters(decodeURIComponent(rawHash))
51-
} catch(e) {
52-
hash = escapeCharacters(rawHash)
53-
}
53+
var hash = parseRawHash(rawHash)
5454
var hashTarget = document.getElementById(hash)
5555
if (!hashTarget) {
5656
var normalizedHash = normalizeHash(hash)
@@ -63,7 +63,7 @@
6363
if (distanceA > distanceB) return 1
6464
return 0
6565
})
66-
window.location.hash = possibleHashes[0]
66+
window.location.hash = '#' + possibleHashes[0]
6767
}
6868

6969
function normalizeHash (rawHash) {

0 commit comments

Comments
 (0)