vue构子函数的理解和应用?

v-if 是组件真正的渲染和销毁,而不是显示和隐藏

频繁切换显示状态用 v-show,否则用 v-if

一般简单的可用 v-show,

key是vue中vnode的唯一标记,通过这个key,我们的diff操作可以更准确,更快速

可以减少渲染次数,提高渲染性能

3、描述 Vue 组件生命周期(有父子组件的情况)

答案:单组件生命周期,生命周期可分为

    • beforeCreate:此阶段为实例初始化之后,此时数据观察和事件机制还没有形成,不能获取到dom节点;
    • created:此阶段的vue实例已经创建,仍不能获取DOM 节点.把vue 的一个实例给初始化了,只是存在于 js 内存的一个变量而已,这个时候并没有开始渲染;
    • beforeMount:在这一阶段,我们虽然还不能获取到具体 DOM 元素,但 vue 挂载的根节点已经创建,下面 vue 对DOM 的操作将围绕这个根元素继续进行,beforeMount 这个阶段是过渡性的,一般一个项目只能用到一两次;
    • mounted:组件真正绘制完成了,页面已经渲染完了,数据和DOM 都已被渲染出来,一般我们的异步请求都写在这里)
    • beforeUpdate: 这一阶段,vue遵循数据驱动DOM 的原则,beforeUpdate 函数在数据更新后没有立即更新数据,但是DOM 数据会改变,这是双向数据绑定的作用;
    • updated:这一阶段,DOM 会和更改过的内容同步)
    • beforeDestroy:在上一阶段vue已经成功通过数据驱动DOM 的修改,当我们不再需要 vue 操纵 DOM 时,就要销毁 vue,也就是清除vue 实例与 DOM 的关联,调用destroy方法可以销毁当前组件。在销毁前,会触发 beforeDestroy 钩子函数;
  • 自定义事件解除绑定:(eventBus 等)

总之就是该销毁的要在这里销毁,不要让他们留在内存中

  • 挂载阶段(加载渲染过程):

4、Vue 组件如何通讯

    本人在项目中常用到的loader有

      本人在项目中常用的 plugin 有:

        你可以让插件为你生成一个HTML文件,使用lodash模板提供你自己的模板,或使用你自己的loader

      7、如何产出一个lib

      • webpack 优化构建速度(可用于生产)
      • webpack 优化构建速度(不可用于生产)

      1、基于 Vue 设计一个购物车(组件结构,vuex state 数据结构)

1、说下Vue数据双向绑定的原理

7、为什么说Vue是一套渐进式框架

 每个框架都不可避免会有自己的一些特点,从而会对使用者有一定的要求,这些要求就是主张,主张有强有弱,它的强势程度会影响在业务开发中的使用方式。 使用vue,你 可以在原有

每个框架都不可避免会有自己的一些特点,从而会对使用者 有一定的要求,这些要求就是主张,主张有强有弱,它的强势程度会影响在业务开发中的使用方式。
使用vue,你可以在原有大系统的上面,把一两个组件改用它实现,当jQuery用;也可以整个用它全家桶开发,当Angular用;
还可以用它的视图,搭配你自己设计的整个下层用。你可以在底层数据逻辑的地方用OO和设计模式的那套理念。
也可以函数式,都可以。
它只是个轻量视图而已,只做了自己该做的事,没有做不该做的事,仅此而已
你不必一开始就用Vue所有的全家桶,根据场景,官方提供了方便的框架供你使用。

 8、vue-cli提供的几种脚手架模板有哪些,区别是什么

9、计算属性的缓存和方法调用的区别

 (1)我们可以将同一函数定义为一个方法或是一个计算属性。两种方式的最终结果确实是完全相同的。不同的是计算属性是基于它们的依赖进行缓存的。只在相关依赖发生改变时它们才会重新求值。相比之下,每当触发重新渲染时,调用方法将总会再次执行函数。

(2)使用计算属性还是methods取决于是否需要缓存,当遍历大数组和做大量计算时,应当使用计算属性,除非你不希望得到缓存。
我们为什么需要缓存?假设我们有一个性能开销比较大的计算属性 A,它需要遍历一个巨大的数组并做大量的计算。然后我们可能有其他的计算属性依赖于 A 。如果没有缓存,我们将不可避免的多次执行 A 的 getter!如果你不希望有缓存,请用方法来替代。
(3)计算属性是根据依赖自动执行的,methods需要事件调用。

12、你做过的Vue项目有哪些,用到了哪些核心知识点

13、实现MVVM的思路分析

17、Vue中如何利用 keep-alive 标签实现某个组件缓存功能

// 技术上 data 的确是一个函数了,因此 Vue 不会警告, // 但是我们返回给每个组件的实例却引用了同一个 data 对象

因为这三组重新共享了data,所以值都是相同的,我们可以通过给每个组件返回全新的data对象来解决这个问题

现在每个 counter 都有它自己内部的状态了。

我要回帖

更多关于 vue router的钩子函数 的文章

 

随机推荐