Skip to content

Новые правки #27

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Jun 29, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 34 additions & 0 deletions docs/ru/configurations/pre-processors.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,40 @@ npm install sass-loader node-sass --save-dev

Обратитесь к разделу [продвинутой конфигурации загрузчиков](./advanced.md) для получения дополнительной информации о том, как настраивать vue-loader.

#### Загрузка глобального файла настроек

Часто встречаются просьбы добавить возможность загружать файл настроек в каждом компоненте без необходимости явно импортировать его каждый раз, например для использования SCSS-переменных глобально во всех компонентах. Для этого нужно:

``` bash
npm install sass-resources-loader --save-dev
```

Затем добавить новое правило в Webpack:

``` js
{
loader: 'sass-resources-loader',
options: {
resources: path.resolve(__dirname, '../src/style/_variables.scss')
}
}
```

Например, если вы используете [vuejs-templates/webpack](https://github.com/vuejs-templates/webpack), измените файл `build/util.js` таким образом:

``` js
scss: generateLoaders('sass').concat(
{
loader: 'sass-resources-loader',
options: {
resources: path.resolve(__dirname, '../src/style/_variables.scss')
}
}
),
```

В этот файл рекомендуется включать только переменные, примеси и т.п., чтобы предотвратить дублирование CSS в финальных скомпилированных файлах.

### JavaScript

Весь JavaScript внутри Vue компонентов обрабатывается `babel-loader` по умолчанию. При необходимости это можно изменить:
Expand Down
16 changes: 16 additions & 0 deletions docs/ru/features/scoped-css.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,3 +49,19 @@
4. **Локальные стили не устраняют необходимость классов**. Из-за того как браузеры рендерят различные CSS-селекторы, `p { color: red }` может быть в разы медленнее при использовании в локальных стилях (например, когда комбинируется с селектором по атрибуту). Если же вы используете классы или ID, такие как `.example { color: red }`, тогда вы практически полностью исключаете ухудшение производительности. [Вот пример](http://stevesouders.com/efws/css-selectors/csscreate.php) где вы можете проверить разницу самостоятельно.

5. **Будьте внимательны с селекторами потомков в рекурсивных компонентах!** Для CSS-правила с селектором `.a .b`, если элемент, который соответствует `.a` содержит рекурсивный компонент потомок, тогда все `.b` в этом компоненте потомке будут также соответствовать правилу.

6. Если вам нужны вложенные селекторы в `scoped` стилях, вам нужно будет использовать оператор `>>>` для CSS и `/deep/` для `scss`:

``` html
<style scoped>
.a >>> .b {

}
</style>

<style lang="scss" scoped>
.a /deep/ .b {

}
</style>
```
4 changes: 2 additions & 2 deletions docs/ru/workflow/testing-with-mocks.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,13 +38,13 @@ npm install inject-loader@^2.0.0 --save-dev

``` js
// example.spec.js
const ExampleInjector = require('!!vue?inject!./example.vue')
const ExampleInjector = require('!!vue-loader?inject!./example.vue')
```

Обратите внимание на эту безумную строку импорта – мы используем [запросы к webpack загрузчику](https://webpack.github.io/docs/loaders.html). Краткое пояснение:

- `!!` в начале строки означает "отключи все загрузчики из глобальной конфигурации"
- `vue?inject!` значит "используй `vue` загрузчик и передай запрос `?inject`". Это заставляет `vue-loader` скомпилировать компонент в режиме внедрения зависимостей.
- `vue-loader?inject!` значит "используй загрузчик `vue-loader` и передай запрос `?inject`". Это заставляет `vue-loader` скомпилировать компонент в режиме внедрения зависимостей.

Полученный `ExampleInjector` – это фабричная функция, которую можно вызвать, чтобы создать экземпляр модуля `example.vue`:

Expand Down
2 changes: 1 addition & 1 deletion docs/ru/workflow/testing.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Karma – это тестовый движок, который запускае
npm install\
karma karma-webpack\
karma-jasmine jasmine-core\
karma-phantomjs-launcher phantomjs\
karma-phantomjs-launcher phantomjs-prebuilt\
--save-dev
```

Expand Down