Краткое введение в идею компонентизации Vue

внешний интерфейс JavaScript Vue.js jQuery

Оригинальная статья Tencent DeepOcean:do pro.IO/explore -v UE…

Всего несколько месяцев назад количество звезд Vue превысило 100 тысяч, официально превысив React.

Один, потяни немного домой

Говорят, что интерфейс — это поле с быстрыми обновлениями и итерациями, и эволюция интерфейса интерфейса становится все более и более интенсивной, так что люди в техническом сообществе всегда видят, как кто-то умоляет о пощаде: «Пожалуйста, не не обновляйте, я больше не могу учиться».

В последние несколько лет jQuery доминировал в области внешнего интерфейса и выделялся среди многих фреймворков.Многие разработчики, которые привыкли писать синтаксис jQuery, обнаружили, что они никогда не смогут вернуться к написанию собственного JS. С течением времени также появились различные отличные фреймворки, и неизбежно, что любители разных фреймворков будут сравнивать разные фреймворки и даже щипать друг друга. Говоря о главном герое сегодняшнего дня, Vue также является очень популярным фреймворком в последние годы. Для новичков стоимость начала работы с Vue действительно низкая, простота использования очень высока, а поскольку он разработан отечественными разработчиками, вся документация на китайском языке, и его использует большое количество отечественных компаний, что также приводит к тому, что темпы роста Vue чрезвычайно высоки.

Однако именно итерации обновлений различных фреймворков соревнуются друг с другом, создавая все лучший и лучший интерфейсный мир. Как написал в Твиттере разработчик Vue:

1530087198_75_w591_h149

 

Во-вторых, первый вход в ворота Vue

1. Что такое Vue?

Vue - прогрессивная база для построения пользовательских интерфейсов. Он имеет следующие характеристики:

  • Прогрессивная структура, разработанная с инкрементальной разработкой снизу вверх
  • Механизм двустороннего связывания шаблона
  • Инкапсулируйте DOM с помощью директив
  • Компонентное мышление
  1530088899_67_w1406_h544

Компонентизация Vue делит страницы пользовательского интерфейса на несколько компонентов для комбинирования и вложения.

2. Быстро начните работу с Vue

Если рабочий хочет улучшить свое тело, он должен сначала заточить свои инструменты.

Независимо от того, какой фреймворк мы изучаем, создание среды — это путь. Vue предоставляет официальный интерфейс командной строки для быстрого создания сложных шаблонов для одностраничных приложений. Конечно, любой предпосылкой является то, что вы сначала понимаете концепции, связанные с Vue, В противном случае, когда новичок приступит к сборке Vue-cli и увидит задействованные концепции webpack, npm, nodejs и т. д., они также будут сбиты с толку, и легко иметь От начала до отказа от идеи.

Когда дело доходит до создания Vue-cli, мы могли бы также стоять на плечах гигантов.Вот учебник для вас, чтобы быстро открыть первую страницу Vue, которая настоятельно рекомендуется:nuggets.capable/post/684490….

 

3. Компонентизация Vue

Пользовательский интерфейс.

Преимущества компонентизации не нуждаются в подробном описании.Все знают, что компоненты являются одной из самых мощных функций Vue.js.Давайте будем использовать независимые и повторно используемые небольшие компоненты для создания крупномасштабных приложений, и эффективность разработки будет выше. и более маневренный. Для лучшего повторного использования вот пример того, как создать компонент всплывающего окна, чтобы рассказать о том, как создать библиотеку компонентов для проекта.

1. Структура библиотеки компонентов

  1. qqcartoon-ui // 组件库名字

  2. ├── index.js // 组件文件

  3. ├── aa1 // 各个组件包

  4. ├── bb1

  5. ├── dialog

  6. ├── index.js // 组件注册

  7. ├── src

  8. ├── index.scss // 组件样式

  9. ├── index.vue // 组件结构

  10. ├──

  11. └── ...


Как правило, в Vue мы будем писать компоненты в компонентах, но для того, чтобы создать библиотеку компонентов, которую можно использовать в нескольких проектах, здесь она переименована, например, в qqcartoon-ui.

 

  • index.js:Каждый компонент в библиотеке компонентов включен как запись для ссылок на экземпляры.
  1. import UIDialog from './dialog/index'

  2. import UIA from './aa1/index'

  3. import UIB from './bb1/index'

  4. export {

  5.  UIDialog,

  6.  UIA,

  7.  UIB

  8. }


  • диалог/index.js:Завершите регистрацию компонента.
  1. import UIDialog from './src/index';

  2. UIDialog.install = function(Vue){

  3.    Vue.component(UIDialog.name,UIDialog);

  4. };

  5. export default UIDialog;


  • диалог/index.scss:Стиль компонента.
  1. .ui-dialog {

  2.    position: fixed;

  3.    top: 0px;

  4.    left: 0px;

  5.    width: 100%;

  6.    height: 100%;

  7.    z-index: 9999;

  8.    -webkit-box-orient: horizontal;

  9.    -webkit-box-pack: center;

  10.    -webkit-box-align: center;

  11.    background: rgba(0,0,0,0.4);

  12. }

  13. ...... 省略其余样式代码


  • диалог/index.vue:компонентный состав. Шаблон компонента может иметь только один корневой элемент.
  1. <template>

  2.    <div class="ui-dialog" :style="{diaplay:show?'-webkit-box':'none'}">

  3.        <div class="ui-dialog-cnt">

  4.            <div class="ui-dialog-bd">

  5.                <h4>{{title}}</h4>

  6.            </div>

  7.        </div>

  8.    </div>

  9. </template>

  10. <style lang="scss" src="./index.scss"></style>

  11. <script>

  12.    export default {

  13.        name:'UIDialog',

  14.        props:{

  15.            show:{

  16.                type:Boolean,

  17.                default:false

  18.            },

  19.            title:{

  20.                type:String,

  21.                default:"这是标题"

  22.            }

  23.        }

  24.    }

  25. </script>


2. Ссылки на компоненты

В корневом каталоге проекта вы можете найти файл js, вероятно, с именем main.js. Введите в него название нужного вам компонента.

  1. import {UIDialog} from '@/qqcartoon-ui/packages/index'

  2. Vue.use(UIDialog)

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

  1. <UIDialog :show="true"></UIDialog>

В это время скомпилируйте код, и вы сможете увидеть окончательный эффект всплывающего окна в браузере!

 

В-четвертых, Vue компоненты стандартизируют

Правил нет, выйти на площадь сложно.
Чтобы создать хорошую библиотеку компонентов, вы должны начать с установки некоторых общих правил.
 
1. Именование
Именование компонентов не должно иметь ничего общего с бизнесом, а должно называться в соответствии с функциями, реализуемыми компонентами. В то же время его также следует отличать от именования бизнес-файлов, и можно добавлять некоторые уникальные префиксы. Например, здесь все компоненты имеют префикс «UI», а всплывающий компонент называется «UIDialog».
 
2. Реализация
Компонент многократного использования должен реализовывать общие функции, и он должен реализовывать:
  • Отображение пользовательского интерфейса
  • Взаимодействие с пользователями (события)
  • эффект анимации
Компоненты многократного использования должны минимизировать зависимости от внешних условий. Независимая функциональная составляющая, для достижения которой лучше не разбиваться на несколько мелких составляющих.
3. Понимание свойств компонентов и событий
В компонентах Vue состояния называются свойствами, события называются событиями, а фрагменты называются слотами.
  • props позволяют внешней среде передавать данные компоненту.
Объявите свои собственные свойства через реквизиты. Это можно понять из приведенного выше кода dialog/index.vue. Его типом является тип: String, Number, Boolean, Array, Object, Date, Function, Symbol.
  • события позволяют компонентам создавать побочные эффекты из внешней среды.
События Dom можно прослушивать с помощью v-on. Синтаксис: v-on:event type="имя обработчика события". Сокращенно: @event type="имя обработчика события".
Наглядный пример:
  1. <ul id="app">

  2.    <li v-on:click = "clickMe">单击事件</li>

  3. </ul>


  4. <script>

  5.    var app = new Vue({

  6.    el : '#app',

  7.    data : {

  8.    },

  9.    methods : {

  10.        clickMe : function(){

  11.            console.log('单击事件发生');

  12.        }

  13.    }

  14. })

  15. </script>


  • Слоты позволяют внешней среде объединять в компоненте дополнительный контент.
Слот эквивалентен установке места в дочернем компоненте, когда он вызывается, он помещает вещи между своим открывающим и закрывающим тегом, затем кладет эти вещи в слот. Когда мы вызываем компонент через слот, мы можем изменить фактическое содержимое компонента по мере необходимости.
Например, шаблон дочернего компонента:
  1. <div>

  2.  <h2>我是子组件的标题</h2>

  3.  <slot>

  4.    只有在没有要分发的内容时才会显示。

  5.  </slot>

  6. </div>


Шаблон родительского компонента:

  1. <div>

  2.  <h1>我是父组件的标题</h1>

  3.  <my-component>

  4.    <p>这是一些初始内容</p>

  5.  </my-component>

  6. </div>


Результат рендеринга:

  1. <div>

  2.  <h1>我是父组件的标题</h1>

  3.  <div>

  4.    <h2>我是子组件的标题</h2>

  5.    <p>这是一些初始内容</p>

  6.  </div>

  7. </div>


 

V. Резюме

Компонент — это модуль с определенной функцией, а функции разных компонентов относительно независимы. Компонент может быть кнопкой, полем ввода, видеопроигрывателем и т. д. Создание повторно используемых компонентов должно иметь характеристики высокой связности и низкой связанности. Эта статья познакомит вас с миром компонентизации Vue.Если вы хотите стать игроком номер один во Vue, вам все равно нужно больше практиковаться и продолжать думать над проектом.

Добро пожаловать в публичный аккаунт Tencent DeepOcean в WeChat, и мы будем еженедельно публиковать оригинальные высококачественные технические статьи, связанные с интерфейсом, искусственным интеллектом, SEO/ASO и другими областями:

Видя, как тяжело редактору двигаться, обратите внимание на один :)