1: Что такое мввм?
MVVM — это сокращение от Model-View-ViewModel. mvvm - это дизайнерская мысль. Уровень модели представляет собой модель данных, в модели также может быть определена бизнес-логика модификации и работы с данными; представление представляет собой компонент пользовательского интерфейса, который отвечает за преобразование модели данных в пользовательский интерфейс для отображения, а модель представления представляет собой объект, который синхронизирует представление и модель.
В архитектуре MVVM нет прямой связи между View и Model, но через ViewModel.Взаимодействие между Model и ViewModel является двунаправленным, поэтому изменения данных View будут синхронизированы с Model, а изменения Данные модели будут синхронизированы, а также сразу отреагируют на представление.
ViewModel связывает уровень представления и уровень модели посредством двусторонней привязки данных, а синхронизация между представлением и моделью происходит полностью автоматически без вмешательства человека, поэтому разработчикам нужно сосредоточиться только на бизнес-логике, нет необходимости вручную манипулировать DOM, нет необходимости чтобы обратить внимание на синхронизацию состояния данных, комплексное обслуживание состояния данных полностью управляется MVVM.
2: В чем разница между mvvm и mvc?
Между mvc и mvvm нет большой разницы. Это все дизайнерская идея. Главное, что Controller в mvc превратился в viewModel в mvvm. mvvm в основном решает проблему, заключающуюся в том, что большое количество операций DOM в mvc снижает производительность рендеринга страниц, замедляет скорость загрузки и влияет на взаимодействие с пользователем. А когда модель часто меняется, разработчику необходимо активно обновлять представление.
2: Каковы преимущества vue?
-
низкое сцепление. Представление может быть изменено и модифицировано независимо от модели.Модель представления может быть привязана к различным "представлениям".При изменении представления модель может оставаться неизменной, а при изменении модели представление также может оставаться неизменным.
-
Повторное использование. Вы можете поместить некоторую логику представления в ViewModel и позволить многим представлениям повторно использовать эту логику представления.
-
Самостоятельное развитие. Разработчики могут сосредоточиться на бизнес-логике и разработке данных (ViewModel), дизайнеры могут сосредоточиться на дизайне страниц, используя Expression Blend, они могут легко проектировать интерфейс и генерировать XML-код.
-
Тестируемый. Интерфейсы всегда было трудно тестировать, и теперь тесты можно писать для ViewModels.
3: Пожалуйста, уточните, как вы понимаете жизненный цикл vue?
A: Всего 8 этапов: до/после создания, до/после загрузки, до/после обновления и до/после уничтожения.
-
До/после создания: на этапе beforeCreate смонтированный элемент экземпляра vueэль еще нет.
-
До/после загрузки: на этапе beforeMount $el и данные экземпляра vue инициализируются, но до монтирования они все еще являются виртуальными узлами dom, а data.message не был заменен. На этапе монтирования экземпляр vue монтируется, и data.message успешно визуализируется.
-
До/после обновления: при изменении данных запускаются методы beforeUpdate и updated.
-
До/после уничтожения: после выполнения метода destroy изменения в данных больше не будут запускать периодическую функцию, указывая на то, что экземпляр vue в это время выпустил мониторинг событий и привязку к dom, но структура dom все еще существует.
4: Как vue реализует загрузку по требованию с настройками веб-пакета?
webpack中提供了require.ensure()来实现按需加载。以前引入路由是通过import 这样的方式引入,改为const定义的方式进行引入。
不进行页面按需加载引入方式:import home from '../../common/home.vue'
进行页面按需加载的引入方式:const home = r => require.ensure( [], () => r (require('../../common/home.vue')))