zoukankan      html  css  js  c++  java
  • vue面试题

    watch与computed的区别

    区别:
    // computed
    支持缓存,只有依赖数据发生改变,才会重新进行计算
    不支持异步,当computed内有异步操作时无效,无法监听数据的变化
    computed 属性值会默认走缓存,计算属性是基于它们的响应式依赖进行缓存的,也就是基于data中声明过或者父组件传递的props中的数据通过计算得到的值
    如果一个属性是由其他属性计算而来的,这个属性依赖其他属性,是一个多对一或者一对一,一般用computed
    如果computed属性属性值是函数,那么默认会走get方法;函数的返回值就是属性的属性值;在computed中的,属性都有一个get和一个set方法,当数据变化时,调用set方法。
    // watch
    不支持缓存,数据变,直接会触发相应的操作
    watch支持异步
    监听的函数接收两个参数,第一个参数是最新的值;第二个参数是输入之前的值
    当一个属性发生变化时,需要执行对应的操作;一对多
    监听数据必须是data中声明过或者父组件传递过来的props中的数据,当数据变化时,触发其他操作,函数有两个参数,
      immediate:组件加载立即触发回调函数执行,
      deep: 深度监听,为了发现对象内部值的变化,复杂类型的数据时使用,例如数组中的对象内容的改变,注意监听数组的变动不需要这么做。注意:deep无法监听到数组的变动和对象的新增,参考vue数组变异,只有以响应式的方式触发才会被监听到。
    使用场景:
    当需要在数据变化时执行异步或开销较大的操作时,这个方式是最有用的。这是和computed最大的区别
    
    computed 是计算一个新的属性,并将该属性挂载到 vm(Vue 实例)上,而 watch 是监听已经存在且已挂载到 vm
    上的数据,所以用 watch 同样可以监听 computed 计算属性的变化(其它还有 data、props)
    
    computed 本质是一个惰性求值的观察者,具有缓存性,只有当依赖变化后,第一次访问 computed 属性,才会计算新的值,而
    watch 则是当数据发生变化便会调用执行函数
    
    // 当一个属性受多个属性影响的时候就需要用到computed 最典型的例子: 购物车商品结算的时候
    // 当一条数据影响多条数据的时候就需要用watch 搜索数据
    // computed 适用一个数据被多个数据影响,而 watch 适用一个数据影响多个数据
    https://www.cnblogs.com/jiajialove/p/11327945.html
    

    vue生命周期及对应的行为

    
    

    vue父子组件生命周期执行顺序

    
    

    组件间通讯方法

    
    

    如何实现一个指令

    
    

    vue.nextTick实现原理

    
    

    diff算法

    
    

    如何做到的双向绑定

    
    

    虚拟dom为什么快

    
    

    如何设计一个组件

    
    

    vue和react区别

    // 同:
    使用 Virtual DOM
    提供了响应式 (Reactive) 和组件化 (Composable) 的视图组件
    // 异:
    模板 vs JSX
    React整体是函数式的思想,一直提倡的是单向数据流,他称之为 onChange/setState()模式,推崇结合 immutable 来实现数据不可变
    Vue 的思想是响应式的,也就是基于是数据可变的,通过对每一个属性建立 Watcher 来监听,当属性变化的时候,响应式的更新对应的虚拟 DOM
    
    所以 React 的性能优化需要手动去做,而Vue的性能优化是自动的,但是Vue的响应式机制也有问题,就是当 state 特别多的时候,Watcher 会很多,会导致卡顿
    
    单向数据流:Vue和react都是单向数据流,单向数据流并非‘单向绑定’,甚至单向数据流与绑定没有‘任何关系’。单向数据流中的‘单向’-- 数据从父组件到子组件这个流向叫单向
    绑定的单双向:View层与Module层之间的映射关系。
    
    双向绑定和响应式的概念
    双向绑定是双向的,表示数据改变驱动视图改变,视图反过来也可以改变数据。
    响应式是单向的,只代表数据改变驱动视图改变,Vue响应式的主要原理是数据劫持和观察者模式,是 Vue 最核心的模块
    react中不存在单向绑定 响应式的概念 只存在 单向数据流的概念 react设计不是为了写更少的代码,而是为了让代码逻辑更清晰
    
    
    

    mvvm
    双向数据绑定
    响应式
    vue实例传入的optinos
    vue 生命周期
    es6 for in for of reduce
    虚拟dom内部复用问题
    v-for key
    数组对象的响应式
    v-model原理
    data为什么是一个函数
    插槽
    this指向
    hash与history 路由实现原理
    浏览器对象 文档对象的区别
    vue.use 原理
    动态路由替换tab标签 替换组件的用法

  • 相关阅读:
    团队作业2:需求分析&原型设计
    第0次作业
    asp.net创建文件夹出错的解决方案[转]
    C# 线程手册 第一章 线程定义 线程
    Apache+php+mysql在windows下的安装与配置图解
    对于访问IIS元数据库失败的解决
    通过设置CSS position 属性来固定层的位置
    vs2008快捷键极其技巧 转载
    大文件上传组件
    C#代码备份还原MSSQL数据库
  • 原文地址:https://www.cnblogs.com/ycyc123/p/15732504.html
Copyright © 2011-2022 走看看