Рубрики
Без рубрики

Как заменить jQuery с vue.js в Ruby на приложениях Rails

Игорь Петром. Как заменить jQuery с vue.js в Ruby on Rails Appsif Вы являетесь Ruby on Rails Developer и были в течение нескольких лет, вы, вероятно, используются для использования jQuery в качестве опции по умолчанию для разработки переднего конца. Несколько версий назад, Разработчики основных рельсов

Игорь Петром

Если вы Ruby на рельсах Разработчик и проводились в течение нескольких лет, вы, вероятно, используются для использования jquery В качестве опции по умолчанию для разработки переднего конца. Несколько версий назад, ядро Рельсы Разработчики предложили его как стандарт, а вовремя стало стандартом. jquery Был ли # 1 JavaScript Библиотека, и это было очень удобно его пользоваться.

С тех пор прошло довольно много времени, но jquery все еще вариант по умолчанию. Теперь, однако, вам нужно что-то другое из-за растущей сложности клиентского кода. Вы можете попробовать React, Angular.js или vue.js, но вы можете использовать только один из них, при этом максимально использовать самые маленькие усилия, чтобы интегрировать его в существующее или новое приложение.

Я использовал jquery надолго И это стало привычкой: если вы начнете новый Рельсы приложение, jquery уже там. Вы уже знакомы с этим, и поэтому вы начинаете использовать его немедленно.

Несколько лет назад я обнаружил, что мне понравился Угловой 1, Потому что это было очень просто начать с. Но он все еще имел избыточную настройку с приложением инициализирующим, контроллерами записи и инъекционными зависимостями.

Это отлично подходит для архитектуры вашего приложения с подходом MVC (MVVM).

Но скажем, у вас есть существующее приложение с большим количеством jquery Код Manipulation DOM, и вы хотите начать заменять этот беспорядок с чем-то более поддерживаемым. Что-то вроде следующее (которое можно оптимизировать, конечно – но это ради примера):

$(document).ready(function(){
   ...   $('#some-radio-button1').on('click', function(){     if ($(this).is(':checked')) {       // removing "active" classes, hiding some blocks       // showing related block
     } else {
       // opposite of above     }   });
});

Почему vue.js?

Так почему я рекомендую заменять jquery код с Vue.js ? Потому что Vue.js не просто полезен для написания комплекса JavaScript Программы. Вы также можете использовать его только для одной простой задачи, например, DOM Manipulation. Если это все, что вам нужно, это было бы хорошей идеей, чтобы пойти с Vue Отказ И вы можете пойти дальше, если вам нужно решить более сложные задачи, такие как маршрутизация, государственное управление и так далее.

Итак, если у вас уже есть проект с большим количеством jquery код, и вы хотели бы избавиться от этих почезновенных обработчиков событий, вы обязательно должны дать Vue.js попробовать.

Начиная

Если вы являетесь разработчиком ROR Old-School и все еще управляете активами через Звездочка Тогда просто скачайте и поставьте vue.js к вашему Продавец/Активы/Javascripts папка.

Далее требуйте от вашего главного JavaScript Манифест файл (например, application.js ):

//= require jquery//= require jquery_ujs//= require bootstrap//= require vue

Тогда вам нужно создать экземпляр A Vue экземпляр и прикрепите его к некоторому элементу в вашем HTML код. Для этого вы могли бы создать отдельный vue_app.js (или. acoffee) файл внутри Приложение/Активы/Javascripts :

window.vueApp = new Vue  el: '.off-canvas-container'  data:    ...

Вот и все, теперь вы можете использовать Vue.js Действительно

Идти дальше

Теперь вы можете добавить данные в свой Vue экземпляр данные Раздел и напишите некоторые обработчики в методы раздел. Но лучше использовать ядро Vue.js Устройство: компоненты.

Самый простой способ продолжить Vue.js это использовать ваши существующие Рельсы Виды и обернуть некоторые кусочки HTML на компоненты. Давайте посмотрим, как это достичь.

Например, у меня есть Приложение/Просмотры/продавцы/print_labels/new.html.erb и некоторые jquery Код, связанный с этой страницей:

Это форма доставки с входами, отключенными по умолчанию. Как только пользователь нажимает значок «Карандаш», поля формы будут превращаться в доступные входы, и будет показана кнопка «Сохранить». После нажатия «Сохранить» форма возвращается в исходное состояние.

Чтобы заменить это jquery код с простым Vue.js Компоненты, я создаю Приложение/Активы/Javascripts/Компоненты/print_labels.coffee С чем-то вроде следующее (но не забудьте потребовать ваших компоненты папка из Application.js ):

Vue.component 'print-labels',  data: ->    isEditingAddress: false

А потом я использую его в моем Рельсы Посмотреть:

Несколько вещей, чтобы заметить:

  • Если вы хотите сохранить компонентные шаблоны внутри видов или частичных вариантов, вы должны использовать Встроенный шаблон вариант.
  • V-плащ Опция необходима для отображения компонента после его инициализации и отображения
  • Мы используем @ yclick Для прикрепления OnClick обработчики событий (Вы можете извлечь сложный код к компоненту Методы )

Теперь мы можем избавиться от jquery код, потому что мы заменили его маленьким Vue.js Компонент (с одной переменной данных!).

Теперь твоя очередь! Продолжай этот подход, и я надеюсь, что вы найдете себя счастливым с Vue.js скоро.

Если вам понравилось этот пост, пожалуйста, нажмите нараспространять слово.

Оригинал: “https://www.freecodecamp.org/news/how-to-replace-jquery-with-vue-js-in-ruby-on-rails-apps-b4f4af192635/”