vue面试知识点

这篇具有很好参考价值的文章主要介绍了vue面试知识点。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Unsplash

  • class 和 style 使用动态属性,使用驼峰式写法
  • v-ifv-show v-if 不渲染不满足判断条件的模块,v-show 渲染但不显示,使用场景:是否多次切换或频繁更新条件状态
  • keep-alive 缓存组件,使用场景:频繁切换,不需要重复渲染
  • v-for 中添加唯一的 key 为了高效的更新虚拟 DOM,会根据 key 值去判断某个值是否修改,如果修改,则重新渲染这一项,否则复用之前的元素,添加方式:key="'list_' + index"
  • mixin 抽离多个组件里的公共逻辑 缺点:变量来源不明确,不利于代码阅读;多个 mixin 可能会造成命名冲突;mixin 和组件可能会出现多对多关系,复杂度高
  • $nextTick Vue 是异步渲染,data 改变后,DOM 不会立刻渲染,页面渲染时会将 data 的做整合,$nextTick 会在 DOM 渲染完之后执行延迟回调,减少 DOM 操作次数,提高性能
  • 组件 data 为什么返回函数 两个实例都引用同一个对象,当其中一个实例属性改变时,另一个实例属性也随之改变,只有当两个实例拥有自己的作用域时,才不会互相干扰
Component.prototype.data = {
  message: 'hello'
}
Component.prototype.data = function() {
  return {
    message: 'hello'
  }
}

复制

  • 组件化 传统组件,只是静态渲染,更新还要依赖于操作 DOM Vue MVVM 数据驱动视图,修改 Model 数据;ViewModel 监听事件、指令;View 渲染
  • 动态组件 :is
// 列表页:轮播图、文章、视频、图片
<div v-for="(item, index) in newsData" :key="index">
  <component :is="item.type"/>
</div>

复制

  • 异步组件 import
comments: {
  Tab: () => import('../comments/Tab')
}

复制

  • 计算属性和侦听器 computed 有缓存,data 不变则不会重新计算,监听值类型可正常拿到 oldVal watch 一般用于监听数据变化的同时,进行异步操作或者是比较大的开销,监听引用类型拿不到 oldVal,因为指针相同,此时已经指向了新的 Val
  • Vue 生命周期(创建、挂载、更新、销毁) beforeCreate created 页面还没有渲染,但 Vue 实例已经初始化了,可以调用 methods 中的方法、改变 data 中的数据,使用场景:发送请求获取数据 beforeMount mounted 页面已经渲染完毕,可以获取到 el 中的 DOM 元素,进行 DOM 操作 beforeUpdate updated beforeDestroy 清除定时器、自定义事件 destroyed
  • 父子组件创建、更新顺序 父组件 created 子组件 created 子组件 mounted 父组件 mounted 父组件 beforeUpdate 子组件 beforeUpdate 子组件 updated 父组件 updated
  • 组件之间的传值通信 父组件给子组件传值通过 props 子组件给父组件传值通过 $emit 触发回调 其他组件通信,通过实例一个 Vue 实例 event 作为媒介,要相互通信的组件之中,都引入 event
  • 动态路由配置(路由懒加载)
{
  path: '/user/:id',
  component: () => import('../components/User')
}

复制

  • vue-router 路由模式 hash 模式 url 多了 # 号,它的特点在于:hash 虽然出现 URL 中,但不会被包含在 HTTP 请求中,对后端完全没有影响,不需要后台进行配置,因此改变 hash 不会重新加载页面 history 模式 利用了 pushState()replaceState() 方法,history 模式改变了路由地址,因为需要后台配置地址

History.pushState() 方法用于在历史中添加一条新记录,浏览器地址栏立刻显示新地址,但并不会跳转,它只是成为浏览历史中的最新记录 History.replaceState() 的使用与 history.pushState() 非常相似,区别在于 replaceState() 是修改了当前的历史记录项而不是新建一个

  • 事件修饰符
<!-- 阻止单击事件继续传播 -->
<a v-on:click.stop="doThis"></a>
<!-- 提交事件不再重载页面 -->
<form v-on:submit.prevent="onSubmit"></form>
<!-- 修饰符可以串联 -->
<a v-on:click.stop.prevent="doThis"></a>
<!-- 只有修饰符 -->
<form v-on:submit.prevent></form>
<!-- 添加事件监听器时使用事件捕获模式 -->
<!-- 即内部元素触发的事件先在此处理,然后才交由内部元素进行处理 -->
<div v-on:click.capture="doThis">...</div>
<!-- 只当在event.target是当前元素自身时触发处理函数 -->
<!-- 即事件不是从内部元素触发的 -->
<div v-on:click.self="doThis">...</div>

复制

  • 表单部分
<template>
  <p>输入框:{{name}}</p>
  <input type="text" v-model.trim="name"/>
  <input type="text" v-model.lazy="name"/>
  <input type="text" v-model.number="age"/>

  <p>多行文本:{{desc}}</p>
  <textarea v-model="desc"></textarea>

  <p>复选框{{checked}}</p>
  <input type="checkbox" v-model="checked"/>

  <p>多个复选框{{checkedNames}}</p>
  <input type="checkbox" id="beijing" value="beijing" v-model="checkedNames"/>
  <label for="beijing">北京</label>
  <input type="checkbox" id="shenzhen" value="shenzhen" v-model="checkedNames"/>
  <label for="shenzhen">深圳</label>
  <input type="checkbox" id="guangzhou" value="guangzhou" v-model="checkedNames"/>
  <label for="guangzhou">广州</label>

  <p>单选{{gender}}</p>
  <input type="radio" id="male" value="male" v-model="gender"/>
  <label for="male">男</label>
  <input type="radio" id="female" value="female" v-model="gender"/>
  <label for="female">女</label>

  <p>下拉列表选择{{selected}}</p>
  <select v-model="selected">
    <option disable value="">请选择</option>
    <option>A</option>
    <option>B</option>
    <option>C</option>
  </select>

  <p>下拉列表选择(多选){{selectedList}}</p>
  <select v-model="selectedList" multiple>
    <option disable value="">请选择</option>
    <option>A</option>
    <option>B</option>
    <option>C</option>
  </select>
</template>

<script>
export default {
  data() {
    return {
      name: '年糕',
      age: 17,
      desc: 'lalalala',
      checked: true,
      checkedNames: {},
      gender: 'male',
      selected: '',
      selectedList: []
    }
  }
}
</script>

复制文章来源地址https://www.toymoban.com/news/detail-505844.html

到了这里,关于vue面试知识点的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 2023面试知识点一

    2023面试知识点一

    默认的,新生代 ( Young ) 与老年代 ( Old ) 的比例的值为 1:2 ( 该值可以通过参数 –XX:NewRatio 来指定 ),即:新生代 ( Young ) = 1/3 的堆空间大小。老年代 ( Old ) = 2/3 的堆空间大小。其中,新生代 ( Young ) 被细分为 Eden 和 两个 Survivor 区域,这两个 Survivor 区域分别被命名为 from 和 t

    2024年02月07日
    浏览(9)
  • java面试常见知识点

    JDK(Java Development Kit)是Java开发工具包,是整个JAVA的核心,包括了Java运行环境JRE(Java Runtime Envirnment)、一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)。 JRE是运行基于Java语言编写的程序所不可缺少的运行环境。JRE中包含了JVM,runtime class libraries和Jav

    2024年02月11日
    浏览(15)
  • 多线程面试相关知识点

    多线程面试相关知识点

    程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至CPU,数据加载至内存。在指令运行过程中还需要用到磁盘、网络等设备。进程就是用来加载指令、管理内存、管理 IO 的。 当一个程序被运行,从磁盘加载这个程序的代码至内存,这时就开启了一

    2024年02月08日
    浏览(45)
  • FPGA面试-常用知识点

    FPGA面试-常用知识点

    本贴记录一下自己找工作过程中顺下来的知识点,如有错误的,请不吝指出,共同进步!   a) FPGA FPGA 基于 LUT ,LUT本质上就是一个RAM,每一个LUT可以看成一个有4位地址线的16x1的RAM。这也是为什么FPGA需要外接一个rom来上电配置。 包括 CLBs , I/O 块, RAM 块和可编程连线 。 在

    2024年04月26日
    浏览(12)
  • 最全前端 HTML 面试知识点

    最全前端 HTML 面试知识点

    1.1.1 定义 超文本标记语言(英语:HyperTextMarkupLanguage,简称:HTML)是一种用于创建网页的标准标记语言 HTML元素是构建网站的基石 标记语言 (markup language ) 由无数个标记(标签、tag)组成 是对某些内容进行特殊的标记,以供其他解释器识别处理 使用标记的文本会被识别为“

    2024年02月20日
    浏览(12)
  • 面试常见知识点--树的遍历

    算法流程 : 1. 先申请一个栈,记为 stk 。 2 .然后将根节点压入 stk 中。 3 .每次从 stk 中弹出栈顶节点,记为 cur ,然后打印 cur 的值。如果 cur 的右子树不为空,将 cur 的右子树压入 stk 中。如果 cur 的左子树不为空,将 cur 的左子树压入 stk 中。不断重复次步骤直到 stk 为空循

    2024年02月01日
    浏览(12)
  • 【Vue前端】vue使用笔记0基础到高手第2篇:Vue进阶知识点介绍(附代码,已分享)

    【Vue前端】vue使用笔记0基础到高手第2篇:Vue进阶知识点介绍(附代码,已分享)

    本系列文章md笔记(已分享)主要讨论vue相关知识。Vue.js是前端三大新框架:Angular.js、React.js、Vue.js之一,Vue.js目前的使用和关注程度在三大框架中稍微胜出,并且它的热度还在递增。Vue.js是一个轻巧、高性能、可组件化的MVVM库,同时拥有非常容易上手的API。Vue.js是一个构建

    2024年02月19日
    浏览(14)
  • Java基础-知识点03(面试|学习)

    Java基础-知识点03(面试|学习)

    String 类是Java中用于表示字符串的类。在Java中,字符串是一系列字符的序列,用于表示文本数据。 String类的作用及特性 1、 创建字符串 : 可以通过字符串字面量或使用new来创建字符串对象。 2、 字符串长度 : 可以使用length()方法获取字符串的长度。 3、 字符串连接

    2024年04月15日
    浏览(21)
  • Java面试知识点(全)- Java面试基础部分一

    Java面试知识点(全)- Java面试基础部分一

    Java面试知识点(全)https://nanxiang.blog.csdn.net/article/details/130640392 语法基础 封装 利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体。数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联

    2024年02月05日
    浏览(10)
  • 面试指南:C++之STL知识点

    相关系列文章 面试指南:C++之STL知识点 C++内存分配策略 深入理解STL空间分配器(一): new_allocator 深入理解STL空间分配器(二):mt_allocator 深入理解STL空间分配器(三):pool_allocator 深入理解STL空间分配器(四):bitmap_allocator 目录 1.讲讲STL的六大组件 2.vector 2.1.简单说说vector 2.2.vecto

    2024年02月21日
    浏览(13)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包