Урок 7.8. Библиотеки + lodash
Vue.js и lodash. Красота debounce при заполнении текстовых полей.
Когда нужен debounce? Простой ответ - всегда, когда вы не хотите выполнять какую-то функцию слишком часто. Например, пользователь что-то вводит в текстовое поле, и, на основании введенных символов, вы хотите показать ему какие-то подсказки. Подсказки вы запрашиваете с сервера. Нет смысла выполнять запрос к серверу пока пользователь продолжает печатать. Если он печатает достаточно быстро, то при каждом нажатии вы будете отправлять новый запрос - это лишняя нагрузка на сервер и проблемы, связанные с асинхронностью запросов, в которые я сейчас не буду углубляться...
Язык JavaScript - Объекты: основы
Вы думаете, что знаете объекты? { key: value } - что тут сложного? Но JavaScript-объекты скрывают тайны, о которых вы не догадывались. Они могут создаваться без прототипа, иметь вычисляемые ключи, скрытые свойства и даже перехватывать любое обращение к себе. Объекты в JavaScript - это не просто "словари" из других языков. Это динамические, гибкие, живые структуры, которые могут меняться прямо во время выполнения. И если массивы - это просто разновидность объектов, а функции - это объекты с возможностью вызова, то понимание объектов открывает дверь к пониманию всего языка...
Глубокое клонирование объектов js. Почему не стоит использовать JSON.parse
Наверняка, многие из вас сталкивались с проблемой клонирования объектов. И скорей всего сталкивались с проблемой, когда спред ({ ...foo }) не работал на вложенные объекты (массивы). Хотя в интернете написано, что работает. Для тех, кто не знает расскажу.
Есть два типа клонирования - поверхностное и глубокое.
Поверхностное, если простым языком, замена ссылки вашей переменной на новую. Например: const foo = { a: 1, b: 2, c: { x: 2 } };
const oldFoo = foo;
const newFoo = { ...foo };
oldFoo.a = 2;
newFoo...