网站的页面布局是什么样的,科技岛,深圳wap网站建设公司,seo关键字排名1、请简述Vue插件和组件的区别 #xff1f;
Vue的插件#xff08;Plugin#xff09;和组件#xff08;Component#xff09;是Vue.js中非常重要的两个概念#xff0c;它们在功能上有着明显的差异。
Vue组件#xff08;Component#xff09;#xff1a; Vue组件是Vue…1、请简述Vue插件和组件的区别
Vue的插件Plugin和组件Component是Vue.js中非常重要的两个概念它们在功能上有着明显的差异。
Vue组件Component Vue组件是Vue.js最强大的功能之一。组件可以扩展HTML元素封装可重用的代码。在较大的Vue.js应用中我们会把整个应用拆分成一些小的、独立的、可复用的组件以使整个项目结构更清晰。例如一个电商网站的页面可以被拆分为头部组件侧边栏组件产品列表组件等。Vue插件Plugin Vue插件通常用来为Vue添加全局功能。插件的范围没有严格的限制——通常是添加全局方法或者通过全局混入等方式影响Vue构造器也可以提供额外的命令行选项。它可能会为Vue添加全局方法或属性如vue-custom-element提供一些自定义选项或者向Vue实例添加方法。例如Vue Router和Vuex就是Vue的插件。
简单来说Vue组件是Vue应用的一部分用于封装和重用代码而Vue插件则是用于添加全局级别的功能。
2、简述Vue的MVVM 模式?
MVVM模式是Model-View-ViewModel的缩写是一种设计思想。MVVM模式分为三部分
Model模型负责数据的存储以及处理问题的部分它代表的是你的数据和业务逻辑。在Vue中Model就是我们在data中声明的数据。View视图负责数据展示的部分简单来说就是用户看到并与之交互的界面。在Vue中View就是我们写的模板。ViewModel视图模型它是连接View和Model的桥梁。在Vue中ViewModel就是Vue实例。Vue实例在创建时会接收data对象并遍历此对象所有的属性并使用Object.defineProperty将属性全部转为getter/setter以便追踪属性的变化。当用户在View层进行操作时ViewModel能感知到变化并对Model层的数据进行更新反之亦然。
MVVM的最大优点就是数据驱动和双向数据绑定即Model变化会自动更新到View反之View变化也会自动改变Model。这种方式让开发者只需关注业务逻辑不需要手动操作DOM极大地提高了开发效率。
3、简述MVC与MVVM的区别
MVC 和 MVVM 都是常见的设计模式它们的主要区别在于对视图和业务逻辑的处理方式。 MVCModel-View-Controller模式 Model模型负责数据的存储。View视图负责数据展示。Controller控制器作为模型和视图之间的桥梁处理用户交互并更新视图和模型。 在MVC模式中用户的操作会首先到达控制器然后控制器更新模型模型变化后会反过来更新视图。但是这种模式的问题在于控制器可能变得过于复杂因为它需要处理视图和模型之间的所有交互。 MVVMModel-View-ViewModel模式 Model模型负责数据的存储。View视图负责数据展示。ViewModel视图模型作为模型和视图之间的桥梁处理用户交互并更新视图和模型。 MVVM模式的出现是为了解决MVC中控制器过于复杂的问题。在MVVM中视图模型替代了控制器的角色它使用数据绑定的方式来实现视图和模型的同步。当模型的数据发生变化时视图模型会自动更新视图反之亦然。这种方式降低了视图和模型之间的耦合度使得代码更易于管理和维护。
总的来说MVVM相比MVC更加注重数据驱动和视图的自动更新使得开发者可以更专注于业务逻辑而不需要手动操作DOM提高了开发效率。
4、简述Vue组件通讯有哪些方式
Vue组件间的通信主要有以下几种方式 父子组件通信 Props down / Events up父组件通过 props 向子组件传递数据子组件通过 emit 发送事件来通知父组件数据的变更。使用 $refs父组件可以通过 $refs 获取子组件的实例从而访问其数据和方法。.sync 修饰符Vue 2.3.0 版本引入了 .sync 修饰符可以作为一种双向绑定的语法糖方便父子组件间的数据同步。 非父子组件通信 事件总线Event Bus创建一个新的 Vue 实例作为事件总线在需要通信的组件之间触发和监听事件。VuexVue 的官方状态管理工具能够帮助我们管理共享状态非常适合大型应用。Vue Router如果使用了 Vue Router可以通过路由参数进行通信。 跨级组件通信 $parent / $children访问父/子组件实例。provide/injectVue 提供的依赖注入机制能够实现祖先组件向后代组件注入数据或方法。
以上就是Vue中常见的组件间通信方式选择哪种方式取决于具体的应用场景和需求。
5、简述Vue的生命周期方法有哪些
Vue实例从创建到销毁的过程就是生命周期。Vue的生命周期主要包括以下几个阶段 创建阶段 beforeCreate在实例初始化之后数据观测 (data observer) 和 event/watcher 事件配置之前被调用。created在实例创建完成后被立即调用。在这一步实例已完成以下的配置数据观测 (data observer)属性和方法的运算watch/event 事件回调。然而挂载阶段还没开始$el 属性目前不可见。 挂载阶段 beforeMount在挂载开始之前被调用。相关的 render 函数首次被调用。mountedel 被新创建的 vm.$el 替换并挂载到实例上去之后调用。此时你会有一些直接的 DOM 操作任务需要在这个阶段完成。 更新阶段 beforeUpdate数据更新时调用发生在虚拟DOM打补丁之前。这里适合在更新之前访问现有的DOM比如手动移除已添加的事件监听器。updated由于数据更改导致的虚拟DOM重新渲染和打补丁在这之后会调用该钩子。 销毁阶段 beforeDestroy实例销毁之前调用。在这一步实例仍然完全可用。destroyedVue实例销毁后调用。调用后所有的事件监听器会被移除所有的子实例也会被销毁。
这些生命周期钩子函数为用户在不同阶段添加自己的代码提供了便利比如你可以在 created 钩子函数中进行Ajax请求数据在 mounted 钩子函数中操作DOM等。
6、简述 v-if 和 v-show 的区别
v-if 和 v-show 都是 Vue 中用来进行条件渲染的指令但它们之间有一些重要的区别
v-if是“真正的”条件渲染因为它会确保在切换过程中条件块内的事件监听器和子组件适当地被销毁和重建。v-if 也是惰性的如果在初始渲染时条件为假则什么也不做——直到条件第一次变为真时才会开始渲染条件块。简单来说如果条件为假v-if 指令会完全销毁元素。v-show不管初始条件是什么元素总是会被渲染并且只是简单地基于 CSS 进行切换。v-show 只会在元素上切换 CSS 的 display 属性。如果条件为假v-show 指令只会将元素隐藏而不是销毁。
总的来说v-if 有更高的切换消耗v-show 有更高的初始渲染消耗。因此如果需要非常频繁地切换则使用 v-show 较好如果在运行时条件很少改变则使用 v-if 较好。
7、简述 Vue 有哪些内置指令
Vue提供了一些内置指令可以在模板中进行一些常见的任务。以下是一些最常用的内置指令
v-bind用于绑定一个属性到表达式。简写为 :。例如v-bind:class 可以绑定一个 class 到一个表达式。v-model在表单元素或者组件上创建双向数据绑定。v-show根据表达式之真假值切换元素的显示/隐藏状态。v-if、v-else-if、v-else根据表达式的值的真假在DOM中渲染或者销毁元素。v-for基于源数据多次渲染元素或模板块。v-on绑定事件监听器。事件类型由参数指定。简写为 。例如v-on:click 可以监听一个点击事件。v-text更新元素的 textContent。如果要更新部分的 textContent需要使用 {{ Mustache }} 插值。v-html更新元素的 innerHTML。注意内容按普通 HTML 插入 - 不会作为 Vue 模板进行编译。v-cloak这个指令保持在元素上直到关联实例结束编译。和 CSS 规则如 [v-cloak] { display: none } 一起用时这个指令可以隐藏未编译的 Mustache 标签直到实例准备完毕。v-pre跳过这个元素和它的子元素的编译过程。可以用来显示原始的 Mustache 标签。跳过大量没有指令的节点会加快编译。v-once只渲染元素和组件一次。随后的重新渲染, 元素/组件及其所有的子节点将被视为静态内容并跳过。
这些内置指令大大增强了模板的功能使我们可以在模板中实现更多的逻辑。
8、简述Vue computed 和 watch 的区别和运用的场景
computed 和 watch 都是 Vue 中的重要特性它们都用于观察和响应 Vue 实例上的数据变动。但是它们的使用场景和方式有所不同 computed计算属性 计算属性是基于它们的依赖进行缓存的。只有在相关依赖发生改变时才会重新求值。这意味着只要依赖没有改变多次访问计算属性会立即返回之前的计算结果而不必再次执行函数。计算属性适合用在模板渲染中某个值是依赖其他的响应式对象甚至多个计算属性计算而来当这些依赖发生变化时计算属性会重新计算新的值。这使得我们在处理复杂逻辑时能够将复杂逻辑拆分在各个计算属性中使得代码更清晰易读。 watch侦听器 侦听器允许我们对数据进行异步操作每当监听的数据变化时都会执行回调进行后续操作。当需要在数据变化时执行异步或开销较大的操作时这个方式是最有用的。例如当一些数据改变需要向服务器发送请求或者在数据改变后需要进行一些延时的复杂逻辑这些场景下使用 watch 是非常有用的。
总的来说当你需要在数据变化后执行异步或开销较大的操作时使用 watch当你需要根据其他数据变动实时计算或处理一些数据时使用 computed。
9、简述 Vue 2.0 响应式数据的原理 重点
Vue 2.0 的响应式系统的核心是 Object.defineProperty它允许 Vue 跟踪依赖并在属性被访问和修改时通知变更。以下是 Vue 2.0 响应式数据的原理
当你把一个普通的 JavaScript 对象传给 Vue 实例的 data 选项Vue 将遍历此对象所有的属性并使用 Object.defineProperty 把这些属性全部转为 getter/setter。每个组件实例都对应一个 watcher 实例它会在组件渲染的过程中把“接触”过的数据属性记录为依赖。之后当依赖项的 setter 触发时会通知 watcher从而使它关联的组件重新渲染。Vue 在更新 DOM 时是异步执行的。只要侦听到数据变化Vue 将开启一个队列并缓冲在同一事件循环中发生的所有数据变更。如果同一个 watcher 被多次触发只会被推入到队列中一次。这种在缓冲时去除重复数据对于避免不必要的计算和 DOM 操作是非常重要的。然后在下一个的事件循环“tick”中Vue 刷新队列并执行实际已去重的工作。Vue 在内部尝试对异步队列使用原生的 Promise.then、MutationObserver 和 setImmediate如果执行环境不支持则会采用 setTimeout(fn, 0) 代替。
通过这种方式Vue 能够智能地知道何时更新视图而无需在数据变化时手动操作 DOM这大大提高了应用的效率。
10、请解释Vue的父子组件生命周期钩子函数执行顺序
Vue.js中的每个组件都有自己的生命周期从创建creation到挂载mounting更新updating和销毁destruction。在这个过程中Vue提供了一些生命周期钩子函数如 created, mounted, updated, destroyed等这些函数可以让我们在特定的时机执行一些代码。
当一个父组件包含一个子组件时他们的生命周期钩子函数的执行顺序如下
beforeCreate: 父组件首先执行beforeCreate钩子函数。created: 父组件接着执行created钩子函数。beforeMount: 父组件接着执行beforeMount钩子函数。然后开始处理子组件。beforeCreate: 子组件执行beforeCreate钩子函数。created: 子组件接着执行created钩子函数。beforeMount: 子组件接着执行beforeMount钩子函数。mounted: 子组件首先执行mounted钩子函数然后父组件执行mounted钩子函数。这是因为父组件等待其所有子组件都挂载完成后才会执行自己的mounted钩子函数。
当组件更新时执行顺序如下
beforeUpdate: 父组件首先执行beforeUpdate然后子组件执行 beforeUpdate。updated: 子组件首先执行updated然后父组件执行updated。
当组件销毁时执行顺序如下
beforeDestroy: 父组件首先执行beforeDestroy然后子组件执行beforeDestroy。destroyed: 子组件首先执行destroyed然后父组件执行destroyed。
这个顺序很重要因为它决定了我们可以在哪个钩子函数中进行数据获取、操作DOM等操作。例如如果我们想在组件挂载后操作DOM那么我们应该在mounted钩子函数中进行。
11、简述 v-model 双向绑定的原理是什么
v-model 是 Vue.js 中的一个重要指令它实现了数据和表单元素之间的双向绑定。简单来说双向绑定就是数据改变会影响视图视图改变也会影响数据。
v-model 的双向绑定原理主要基于以下两个部分
数据到视图的绑定这一部分主要通过 Vue 的响应式系统完成。当我们在组件的 data 中定义一个变量例如 messageVue 会使用 Object.defineProperty() 方法将它转换为 getter/setter。当我们在模板中使用 {{message}} 或 v-modelmessage 时Vue 会将当前组件添加到 message 的依赖中。当 message 发生变化时Vue 会通知所有依赖 message 的组件重新渲染从而更新视图。视图到数据的绑定这部分主要通过监听 DOM 事件完成。对于 input 元素v-model 指令会监听 input 事件。当用户在输入框中输入内容时触发 input 事件然后 v-model 指令的事件处理函数会把新的值赋给 message从而更新数据。
所以v-modelmessage 相当于 v-bind:valuemessage 和 v-on:inputmessage $event.target.value 的语法糖。
这种双向绑定机制使得我们在处理表单元素时更加简单只需要操作数据不需要直接操作 DOM提高了开发效率。
12、请简述Vue3.x 响应式数据原理是什么 重点
Vue 3.x 的响应式系统是基于 ES6 的 Proxy 对象和 Reflect 对象实现的相比于 Vue 2.x 使用的 Object.definePropertyProxy 可以直接监听对象而非属性它可以拦截并定义基本操作的行为如属性查找、赋值、枚举、删除等。
下面是 Vue 3.x 响应式系统的基本原理
数据劫持当我们使用 reactive 或 ref 创建响应式数据时Vue 3.x 会使用 Proxy 创建一个代理对象对原始对象进行劫持。Proxy 可以拦截对象的多种操作包括获取属性值、设置属性值、删除属性等。依赖收集当我们首次访问属性值时Proxy 的 get 陷阱会被触发。在 get 陷阱中Vue 3.x 会把当前正在执行的副作用函数即响应式效果函数添加到当前属性的依赖列表中。这个过程叫做依赖收集。派发更新当我们修改属性值时Proxy 的 set 陷阱会被触发。在 set 陷阱中Vue 3.x 会遍历当前属性的依赖列表执行每个依赖副作用函数。这个过程叫做派发更新。
举个例子假设我们有一个响应式对象 data
const data reactive({ count: 0 });当我们在组件的 setup 函数中使用 data.count 时
watchEffect(() {console.log(data.count);
});Vue 3.x 会在 Proxy 的 get 陷阱中把 console.log(data.count) 这个副作用函数添加到 count 属性的依赖列表中。
当我们修改 data.count 时
data.count;Vue 3.x 会在 Proxy 的 set 陷阱中遍历 count 属性的依赖列表执行每个副作用函数。所以console.log(data.count) 会被执行打印出新的 count 值。
通过这种方式Vue 3.x 实现了数据的响应式。只要数据发生变化所有依赖这个数据的地方都会自动更新。
13、请简述vue-router 动态路由是什么
Vue-router 的动态路由主要是指路由的路径中包含动态部分也就是说我们可以在一个路由中插入一些变量。
动态路由主要用于处理 URL 参数使我们能够创建一个路由来匹配任意路径其中包含的参数可以在 Vue 组件中获取。
例如我们可能有一个用户组件用于显示用户的详细信息。每个用户都有一个唯一的 ID。我们可以创建一个动态路由来匹配 “/user/:id”其中 “:id” 是一个动态的部分可以匹配任意的用户 ID
const router new VueRouter({routes: [{ path: /user/:id, component: User }]
})这样当我们访问 “/user/123” 时Vue-router 会显示 User 组件并将 “123” 作为参数传递给它。
在 User 组件中我们可以使用 $route.params.id 来获取用户 ID
export default {computed: {userId() {return this.$route.params.id}}
}这种方式使得我们能够使用同一个组件来显示不同的用户而不需要为每个用户都创建一个单独的路由和组件从而简化了代码的复杂性并提高了代码的重用性。
14、Vue生命周期钩子是如何实现的?
Vue 的生命周期钩子函数是 Vue 实例在不同生命周期阶段会自动调用的一些函数。这些函数让我们有机会在特定的时刻添加自己的代码如在组件创建时获取数据在组件更新前做一些清理工作等。
Vue 的生命周期钩子的实现主要依赖于 Vue 的组件系统。在 Vue 内部每个 Vue 组件都被表示为一个 Vue 实例在这个实例的生命周期中Vue 会在特定的时机调用相应的钩子函数。
以下是 Vue 生命周期钩子函数的主要实现过程
创建阶段当我们使用 new Vue() 创建一个新的 Vue 实例时Vue 会调用 _init 方法来初始化这个实例。在 _init 方法中Vue 会调用 beforeCreate 和 created 钩子函数。在这两个钩子函数中我们可以访问到组件的数据和方法但是无法访问到 DOM因为此时 DOM 还没有被创建。挂载阶段当我们调用 vm.$mount() 方法来挂载这个 Vue 实例时Vue 会开始编译模板并创建 DOM。在这个过程中Vue 会调用 beforeMount 和 mounted 钩子函数。在 beforeMount 钩子函数中我们可以获取到编译后的模板但是无法获取到 DOM因为此时 DOM 还没有被插入到页面中。在 mounted 钩子函数中我们可以获取到 DOM并可以进行 DOM 操作。更新阶段当组件的数据发生变化时Vue 会重新渲染组件。在这个过程中Vue 会调用 beforeUpdate 和 updated 钩子函数。在 beforeUpdate 钩子函数中我们可以获取到更新前的数据和 DOM。在 updated 钩子函数中我们可以获取到更新后的数据和 DOM。销毁阶段当我们调用 vm.$destroy() 方法来销毁这个 Vue 实例时Vue 会开始销毁组件。在这个过程中Vue 会调用 beforeDestroy 和 destroyed 钩子函数。在 beforeDestroy 钩子函数中我们可以获取到销毁前的数据和 DOM并可以进行一些清理工作如清除定时器、取消事件监听等。在 destroyed 钩子函数中我们可以确认组件已经被销毁所有的数据和方法都已经被清除。
以上就是 Vue 生命周期钩子函数的主要实现过程。需要注意的是这些钩子函数都是可选的我们可以根据需要在组件中定义这些函数。当这些函数存在时Vue 会在相应的时机自动调用它们。
15、如何理解Vue中的模板编译原理?
Vue.js的模板编译原理主要包括两个步骤解析Parse和生成Generate。 解析Parse 这个阶段会把模板转换成抽象语法树ASTAbstract Syntax Tree。抽象语法树是一种以树状的形式表现源代码结构的方式每一个节点都代表源代码中的一部分。 解析阶段主要做的就是读取模板中的标签、指令、插值等并以抽象语法树的形式表现出来。例如对于模板div idapp{{ message }}/div解析后的抽象语法树可能如下 {type: 1, // 节点类型1表示元素节点tag: div, // 标签名attrsList: [{ name: id, value: app }], // 属性列表attrsMap: { id: app }, // 属性映射children: [ // 子节点列表{type: 2, // 节点类型2表示带有插值的文本节点expression: _s(message), // 插值表达式text: {{ message }} // 文本内容}]
}生成Generate 这个阶段会把抽象语法树转换成渲染函数。渲染函数是一个JavaScript函数当执行这个函数时会返回一个虚拟DOM。 生成阶段主要做的就是遍历抽象语法树把每一个节点转换成虚拟DOM的创建代码。例如对于上面的抽象语法树生成后的渲染函数可能如下 function render() {return _c(div, { attrs: { id: app } }, [_v(_s(message))]);
}其中_c 是创建元素节点的函数_v 是创建文本节点的函数_s 是转换为字符串的函数。
这就是Vue.js的模板编译原理的基本过程。通过这个过程Vue.js可以把我们写的模板转换成JavaScript代码从而实现数据和视图的绑定。
16、简述vue.mixin的使用场景和原理?
Vue 的 mixin 是一种分发 Vue 组件中可复用功能的非常灵活的方式。简单来说mixin 对象可以包含任何组件选项当组件使用 mixin 对象时所有 mixin 对象的选项将被混入到该组件本身的选项中。
使用场景
当我们有一些通用的功能比如数据获取、验证函数、工具方法等这些功能在多个组件中都需要使用时就可以考虑使用 mixin 来进行代码复用。当我们需要对 Vue 的一些生命周期钩子函数进行抽象时也可以使用 mixin。例如我们可以创建一个 mixin它在 created 钩子中获取数据在 beforeDestroy 钩子中清理资源。
代码示例
// 定义一个 mixin 对象
var myMixin {created: function () {this.hello()},methods: {hello: function () {console.log(hello from mixin!)}}
}// 定义一个使用了这个 mixin 的组件
var Component Vue.extend({mixins: [myMixin]
})var component new Component() // hello from mixin!原理
Vue 的 mixin 实现原理主要是通过合并选项merge options来实现的。当我们创建一个 Vue 实例或组件时Vue 会把这个实例或组件的选项和所有的 mixin 对象的选项进行合并。这个合并过程主要是通过 Vue.config.optionMergeStrategies 来实现的它定义了各种选项的合并策略。
在合并过程中大部分选项将进行合并也就是说如果组件和 mixin 对象都定义了这个选项那么最终的结果将是这两个选项合并后的结果。例如对于 data 选项Vue 会把组件和 mixin 对象的数据对象进行合并并返回一个新的数据对象。
但是有一些选项是不进行合并的比如 el 和 data。对于这些选项如果组件和 mixin 对象都定义了这个选项那么最终的结果将是组件的选项覆盖 mixin 对象的选项。
通过这种方式Vue 的 mixin 实现了对组件选项的复用使我们可以在多个组件中共享同样的选项和逻辑。
由于内容太多更多内容以链接形势给大家点击进去就是答案了
17. 解释Vue中transition的理解
18. 请描述Vue的实现原理
19. 简述对于Vue的diff算法理解
20. 请简述 Vue组件的通信父子组件和非父子组件
21. 请简述 Vue组件的通信 兄弟组件通信
22. 请简述Vuex的使用
23. Vuex 页面刷新数据丢失怎么解决
24. 请叙述Vue 中使用了哪些设计模式
25. 请简述Vue 的性能优化可以从哪几个方面去思考设计
26. 简述Vue.set 方法原理
27. 请解释Vue为什么要用虚拟Dom 详细解释原理
28. 请说明Vue key的作用及原理
29. 简单描述Vue的组件渲染流程
30. 请说明Vue的filter的理解与用法
31. 请简述Vue中的v-cloak的理解
32. 请描述Vue常用的修饰符
33. 解释 Vue route和router的区别
34. Vue中delete和Vue.delete删除数组的区别
35. 请说明Vue的solt的用法
36. 请说明Vue中 r o o t 、 root、 root、refs、$parent的使用
37. 简述v-el 作用是什么以及Vue的el属性和$mount优先级
38. 简述vue-loader是什么?使用它的用途有哪些?
39. 简述Vue的普通Slot以及作用域Slot的区别
40. 请简述vue2和vue3的区别 ?
41. Vue3.0 里为什么要用 Proxy API替代 defineProperty API
42. Vue中created与mounted区别
43. 简述Vue中watch用法详解 ?
44. 简述为什么Vue采用异步渲染
45. 简述什么情况下使用 Vuex
46. 简述Vuex和单纯的全局对象有什么区别
47. Vue 3.0 所采用的 Composition Api 与 Vue 2.x使用的Options Api 有什么区别
48. Vue.js中的v-bind指令有何作用如何使用
49. Vue.js中的路由导航钩子有哪些如何使用
50. 简述父组件给子组件props传参子组件接收的6种方法
51. 如何解决Vuex页面刷新数据丢失
52. 请说明Vue Watch和Dep的关系
53. 简述Vue中同时发送多个请求怎么操作
54. 简述vue2.x 和 vuex3.x 渲染器的 diff 算法
55. 如何让 CSS 值在当前的组件中起作用
56. 请简述构建 vue-cli 工程都用到了哪些技术他们的作用分别是什么
57. 简述Vue 的 computed 的实现原理
58. 简述Vue complier 的实现原理是什么样的
59. Vue 如何快速定位那个组件出现性能问题的
60. 请简述Vue ref 的作用是什么
61. Vue.extend 和 Vue.component 的区别是什么
62. 简述接口请求一般放在哪个生命周期中为什么要这样做
63. 请简述Vue事件绑定原理
64. v-on 可以实现监听多个方法么
65. Vue 的数据为什么频繁变化但只会更新一次
66. 阐述Vue 中 computed 和 methods 的区别
67. 如何监听 pushstate 和 replacestate 的变化呢
68. 简述 Vue3.0 为什么速度更快
69. 简述Vue中如何扩展一个组件
70. Vue中子组件可以直接改变父组件的数据么说明原因
71. Vue watch怎么深度监听对象变化 ?
72. 简述Vue.js的template编译的理解
73. 简述Vue中mixin与extend区别
74. 简述prop 如何指定其类型要求
75. 简述什么是Vue渲染函数 举个例子
76. 简述Vue中引入组件的步骤
77. 简述如何让CSS只在当前组件中起作用
78. 简述vue深拷贝数量加减dom不进行二次渲染解决方法
79. 简述双向绑定和 vuex 是否冲突
80. 简述React 和 Vue 的 diff 时间复杂度从 O(n^3) 优化 到 O(n) 那么 O(n^3) 和 O(n) 是如何计算出来的
81. 简述Vue 的⽗组件和⼦组件⽣命周期钩⼦执⾏顺序是什么
82. 简述Vue data 中某一个属性的值发生改变后视图会立即同步执 行重新渲染吗
83. 简述assets 和 static 的区别
84. 简述v-if 和 v-for 哪个优先级更高如果同时出现应如何优化 在 Vue 中v-
85. 简述Vue 子组件和父组件执行顺序
86. 简述Vuex 和 localStorage 的区别
87. 简述Vue3.0 为什么要用 proxy
88. 简述你是如何理解 Vue 的响应式系统的