28个Vue知识点,必会!!!

7 篇文章 0 订阅
订阅专栏

1.Vue的优点? vue的缺点?

优点:渐进式,组件化,轻量级,虚拟dom,响应式,单页面路由,数据与视图分开
缺点:单页面不利于seo,不支持IE8以下,首屏加载时间长

2.为什么说Vue是一个渐进式框架?

渐进式:通俗点讲就是,你想用啥你就用啥,咱也不强求你。你想用component就用,不用也行,你想用vuex就用,不用也可以

3. Vue跟React的异同点?

相同点:
1.都使用了虚拟dom
2.组件化开发
3.都是单向数据流(父子组件之间,不建议子修改父传下来的数据) 4.都支持服务端渲染
不同点:
1.React的JSx, Vue的template
2.数据变化,React手动(setState),Vue自动(初始化已响应式处理,Object.defineProperty)
3.React单向绑定,Vue双向绑定·4.React的Redux,Vue的Vuex

4.MVVM是什么?和MVC有何区别呢?

Mvc
Model(模型):负责从数据库中取数据. View(视图):负责展示数据的地方
Controller(控制器):用户交互的地方,例如点击事件等等·思想:Controller将Model的数据展示在View 上
MVVM
VM: 也就是View-Model,做了两件事达到了数据的双向绑定一是将【模型】转化成【视图】,即将后端传递的数据转化成所看到的页面。实现的方式是:数据绑定。二是将【视图】转化成【模型】,即将所看到的页面转化成后端的数据。实现的方式是:DOM事件监听。
思想: 实现了View和Model的自动同步,也就是当Model 的属性改变时,我们不用再自己手动操作Dom元素,来改变View的显示,而是改变属性后该属性对应View层显示会自动改变(对应Vue数据驱动的思想)
区别
整体看来,MVVM 比MVC精简很多,不仅简化了业务与界面的依赖,还解决了数据频繁更新的问题,不用再用选择器操作DOM元素。因为在MVVM 中,View不知道 Model的存在,Model和ViewModel也观察不到View,这种低耦合模式提高代码的可重用性
Vue是不是MVVM框架?
Vue是MVVM框架,但是不是严格符合MVVM,因为MVVM规定Model和View不能直接通信,而Vue的ref可以做到这点

5. Vue和JQuery的区别在哪?为什么放弃JQuery用Vue?

1.jQuery是直接操作DOM,Vue不直接操作DOM,Vue的数据与视图是分开的,Vue
只需要操作数据即可
2.jQuery的操作DOM行为是频繁的,而Vue利用虚拟DOM的技术,大大提高了更新DOM时的性能
3.Vue中不倡导直接操作DOM,开发者只需要把大部分精力放在数据层面上                            4.Vue集成的一些库,大大提高开发效率,比如Vuex,Router等

6. Vue的作者是谁?大声说出它的名字!! !

他的名字就是:鱿鱼西

7.为什么data是个函数并且返回一个对象呢?

data之所以只一个函数,是因为一个组件可能会多处调用,而每一次调用就会执行data函数并返回新的数据对象,这样,可以避免多处调用之间的数据污染。

8.使用过哪些Vue的修饰符呢?

 9.使用过哪些Vue的内部指令呢?

10.组件之间的传值方式有哪些?

1.父组件传值给子组件,子组件使用props进行接收;子组件传值给父组件,子组件使用$emit+事件对父组件进行传值
2.组件中可以使用$parent和schildren获取到父组件实例和子组件实例,进而获取数据。使用sattrs和slisteners,在对一些组件进行二次封装时可以方便传值,例如A->B->c
3.使用$refs获取组件实例,进而获取数据。使用vuex进行状态管理
4.使用eventBus进行跨组件触发事件,进而传递数据
5.使用provide和inject,官方建议我们不要用这个,我在看Elementur源码时发现大量使用
6.使用浏览器本地缓存,例如localstorage

11.路由有哪些模式呢?又有什么不同呢?

1.hash模式:通过#号后面的内容的更改,触发hashchange事件,实现路由切换
2.history模式:通过pushState和replaceState切换url,触发popstate事件,实现路由切换,需要后端配合

12.如何设置动态class,动态style?

动态class对象:

<div :class="i 'is-active ' :true, 'red ' : isRed }"></div>

·动态class数组:
<div :class=" [ 'is-active ', isRed ? 'red' : "]"></div>
动态style对象:
<div :style="{ color: textcolor,fontSize: '18px’}"></div>

13. v-if和v-show有何区别?

1.v-if是通过控制dom元素的删除和生成来实现显隐,每一次显隐都会使组件重新跑—遍生命周期,因为显隐决定了组件的生成和销毁
2.v-show是通过控制dom元素的css样式来实现显隐,不会销毁
3.频繁或者大数量显隐使用v-show ,否则使用v-if


14-computed和watch有何区别?

1.computed是依赖已有的变量来计算一个目标变量,大多数情况都是多个变里凑在一起计算出一个变里,并且computed具有缓存机制,依赖值不变的情况下其会直接读取缓存进行复用,computed不能进行异步操作
2.watch是监听某一个变量的变化,并执行相应的回调函数,通常是―个变里的变化决定多个变里的变化,watch可以进行异步操作
3.简单记就是:—般情况下computed是多对一, watch是—对多


15. Vue的生命周期,讲—讲?
 

16.为什么v-if和v-for不建议用在同―标签?

在Vuez中,v-for优先级是高于v-if的
v-for和v-if同时存在,会先把元素都遍历出来,然后再一个个判断是否为3,并把给隐藏掉,这样的坏处就是,渲染了无用的节点,增加无用的dom操作,建议使用computed来解决这个问题:

17. vuex的有哪些属性?用处是什么?
 

State:定义了应用状态的数据结构,可以在这里设置默认的初始状态。
Getter:允许组件从Store 中获取数据,mapGetters辅助函数仅仅是将store 中的getter映射到局部计算属性。
Mutation:是唯―更改store 中状态的方法,且必须是同步函数。
Action:用于提交mutation,而不是直接变更状态,可以包含任意异步操作。.Module:允许将单一的Store:拆分为多个store且同时保存在单—的状态树中。

18.不需要响应式的数据应该怎么处理?

在我们的Vue开发中,会有一些数据,从始至终都未曾改变过,这种死数据,既然不改变,那也就不需要对他做响应式处理了,不然只会做一些无用功消耗性能,比如一些写死的下拉框,写死的表格数据,这些数据量大的死数据,如果都进行响应式处理,那会消耗大量性能。
 

//方法一;将数据定义在data之外
this.list1 = { xxXXXXXXXXXXXXXXXXXXXXXXXXXxXXx }
this.list2 = { xxxXXxXxXXXXXXXxXXXXXXXXXXXXXXxxXxx }
this.list3 = {xxxXXXXXXXXXxxxXXXXXXXXXXXXXxXXx }
this.list4 = {xxxx0xXXxXXxXXxXXXXXXXXXXXXXXXxxx }
this.list5 = { xxxxxxXXXXXXXXXXxXxX0XXXXXXXXXXXxxx }
return f0
//方法二:object.freeze()
return {
list1: Object.freeze(ixxxxXXXXXXXXXXXXXXxxXx}),
list2: Object.freeze({xxxxxXXXXXXXXXXXXXXXxxx}),
list3: object.freeze({xxxxxXXXXXXXXXXXXXXXxxx}),
list4: Object.freeze({xxxxxxXXXXXXXXXXXXXXxXx}),
list5: object.freeze({xxxxxXXXXXXXXXXXXXXxxx}),
}

19. watch有哪些属性,分别有什么用?

当我们监听一个基本数据类型时:

watch: {
    value () {
         // do something
    }
}

当我们监听一个引用数据类型时:
 

watch: {
    obj: {
        handler {//行回滴
        //do something
        },
        deep: true,//是否姓行凝度监斫
        immediate: true //是否初始行handLer虽强
   }
}

20.父子组件生命周期顺序

beforeCreate -> 父created -> 父beforeMount ->子beforeCreate ->子created ->子beforeMount -> 子mounted - 父mounted


21.对象新属性无法更新视图,删除属性无法更新视图,为什么?怎么办

原因:object.defineProperty没有对对象的新属性进行属性劫持
对象新属性无法更新视图:使用vue.$set(obj,key,value),                                                        组件中this.$set(obj, key , value)
删除属性无法更新视图:使用vue.$delete(obj,key),组件中this.$delete(obj,k
ey)


22.直接arr[index] = xxx无法更新视图怎么办?为什么?怎么办?

原因:Vue没有对数组进行object.defineProperty的属性劫持,所以直接arr[index]= xxx是无法更新视图的。
使用数组的splice方法,arr.splice(index, 1, item)·使用vue.$set( arr, index, value)

23.为什么不建议用index做key,为什么不建议用随机数做key?

用index和用随机数都是同理,随机数每次都在变,做不到专一性,也很消耗性能

24.Vue的SSR是什么?有什么好处?

SSR就是服务端渲染
基于nodejs serve服务环境开发,所有html代码在服务端渲染
数据返回给前端,然后前端进行“激活”,即可成为浏览器识别的html代码
SsR首次加载更快,有更好的用户体验,有更好的seo优化,因为爬虫能看到整个页面的内容,如果是vue项目,由于数据还要经过解析,这就造成爬虫并不会等待你的数据加载完成,所以其实Vue项目的seo体验并不是很好

25. Vue响应式是怎么实现的?

整体思路是数据劫持+观察者模式
对象内部通过defineReactive方法,使用object . defineProperty将属性进行劫持(只
会劫持已经存在的属性), 数组则是通过重写数组方法来实现。当页面使用对应属性时,
每个属性都拥有自己的dep属性,存放他所依赖的watcher (依赖收集), 当属性变化后
会通知自己对应的watcher去更新(派发更新)。

26.为什么只对对象劫持,而要对数组进行方法重写?

因为对象最多也就几十个属性,拦截起来数量不多,但是数组可能会有几百几千项,拦截起来非常耗性能,所以直接重写数组原型上的方法,是比较节省性能的方案

27.审查元素时发现data-v-Xxxxx,这是啥?

 <div data-v-811db470e1ass="entry">
<div data-v-811db470 classm"el-cand entry-headers is-always-shadow"..<./div( flex<div data-v-811db47e class=""entry-content">..<./ div> (flex
< / div>
这是在标记vue文件中css时使用scoped标记产生的,因为要保证各文件中的css不相互影响,给每个component都做了唯一的标记,所以每引入一个component就会出现一个新的'data-v-xxx'标记

28.vue的el属性和$mount优先级?

比如下面这种情况,Vue会渲染到哪个节点上

new Vue(i
router,store,
el: "#app",
render: h => h(App)}).$mount( "#ggg")


这是官方的一张图,可以看出el和$mount同时存在时,el优先级> $mount

 

 

Vue必会知识点——使用篇
weixin_45494904的博客
08-19 538
文章目录使用Vue的基本使用组件Vue高级特性VuexVue-router 使用 Vue的基本使用 v-html和v-text: 都会覆盖掉子组件 v-html能解析html标签 v-html有xxs风险 computed和watch: computed有缓存,data不变则不会重新计算。 cpmputed在v-model绑定的时候需要有get(),set() watch需要设置deep为true才能深度监听 watch监听引用类型,拿不到oldVal,因为同一个引用类型指针相同,修改值之后指向新的v
Vue必会知识点——原理篇
weixin_45494904的博客
08-19 573
文章目录原理组件化和MVVMVue响应式虚拟DOM(Virtual DOM)和diff模板编译vue组件如何渲染和更新前端路由原理 原理 组件化和MVVM 组件的出现,就是为了拆分代码,以不同的组件划分不同的功能模块,有复用性 传统组件,只是静态渲染,更新还要依赖于操作DOM MVVM的数据驱动视图则可以专注于业务逻辑和数据的开发,利用双向数据绑定去更新视图。 Model-View-ViewModel 的缩写,Model代表数据模型,View代表 UI 组件,ViewModel 将Model 和View
vue必会知识点
Howhanh的博客
11-22 399
一、vue的使用 1、vue-cli vue 项目是基于vue-cli 脚手架搭建的项目。当我们要创建一个项目时,首先要先全局安装vue-cli脚手架,命令行为: npm i -g @vue/cli 在搭建完成项目以后,我们需要来了解 src 目录下各个文件夹和文件的用法。 ├── assets 放置静态资源 ├── components 放组件 ├── router 定义路由的相关配置 ├── views 视图 ├── views 视图 ├── app.vue 应用主组件 ├── main.js 入口文
Vue中!.和?.是什么意思
最新发布
ggq53219的博客
07-25 1226
Vue(或更广泛地说,在JavaScript和TypeScript中),!和?是两个与可选链(Optional Chaining)和断言非空(Non-null Assertion)相关的操作符,它们分别用于处理可能为null或undefined的值,以避免运行时错误。?
vue-必备知识点,图文详解
2401_84023482的博客
04-04 767
等同于 JavaScript 中的 event.stopPropagation() ,防止事件冒泡;:等同于 JavaScript 中的 event.preventDefault() ,防止执行预设的行为(如果事件可取消,则取消该事件,而不停止事件的进一步传播);:与事件冒泡的方向相反,事件捕获由外到内;:只会触发自己范围内的事件,不包含子元素;:只会触发一次。24.vue的两个核心点答:数据驱动、组件系统: ViewModel,保证数据和视图的一致性。: 应用类UI可以看作全部是由组件树构成的。
2023必知必问的Vue3面试题总结!!!.docx
07-23
### Vue 3 面试题知识点总结 #### MVVM 模型详解 MVVM(Model-View-ViewModel)模式是一种软件架构设计模式,它在Web前端开发领域得到了广泛应用,尤其在使用诸如Vue.js这样的框架时更为突出。MVVM模式本质上是对...
2023必知必问的Vue3面试题总结!!
07-09
在面试中,了解Vue3的这些关键知识点是至关重要的。以下是对Vue3面试题的一些核心概念的详细解释: 1. **MVVM 模型**: MVVM(Model-View-ViewModel)是一种设计模式,Vue 就是基于这种模式构建的。Model 代表数据...
Vue中打印所必备资源!Bolo_Export2Excel
07-13
这个过程涉及到的知识点包括:Vue组件方法、事件绑定、ES6语法、JavaScript数据处理、HTML5 Blob对象、URL.createObjectURL以及DOM操作等。理解并掌握这些技术,对于提升Vue项目中的功能实现能力非常有帮助。
Vue初学者必学知识点(含案例)
11-13
作为Vue初学者,了解并掌握以下关键知识点至关重要: 1. **基础概念**:首先,理解Vue的基本架构,包括实例、组件、指令、过滤器等。Vue实例是应用的核心,它持有数据和方法;组件是可复用的代码块,用于构建大型...
Vue2 必备的50个知识点
2401_84446712的博客
04-29 784
这里只说Vue2的bind:指令绑定到指定元素时调用,只调用一次inserted:指定元素插入父节点时调用update:所在组件的 VNode 更新时调用:所在组件以及其子组件 VNode 全部更新后调用unbind:只调用一次,指令与元素解绑时调用props: {num: {// 返回值为false则验证不通过,报错return [== -1正值招聘旺季,很多小伙伴都询问我有没有前端方面的面试题!开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】xxxx,这是啥?
Vue必备知识点
swagLi的博客
09-03 187
https://segmentfault.com/a/1190000016344599?utm_source=tag-newest
Vue中必掌握的知识
热门推荐
weixin_49115895的博客
03-03 1万+
Vue入门基础一、什么是vue二、与原生JS的区别三、数据绑定1、内容绑定2、属性绑定3、表单标签的值四、事件处理五、列表渲染六、条件渲染七、Class与Style绑定八、计算属性九、侦听器 一、什么是vue vue是一套用于构建用户页面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。 二、与原生JS的区别
Vue的基础必备知识
q448366830的博客
06-12 2388
Vue和 JQuery的完全操作dom不同,他是通过一些特殊的html语法,将dom和数据绑定,创建了这种绑定,DOM和数据保持同步,一更新数据,dom自动更新。 vue.js是javascript MVVM库(model-view-ViewModel) ViewModel便是vue.js核心,它是一个vue实例。vue实例作用在某个html元素上,可以是某个指定id元素。 vue.js可以实现...
Vue开发者必会的基础知识盘点
小羽羽博客
07-19 520
Vue中的数据和DOM已经被关联起来,所有的东西都是响应式的。注意我们不再和HTML直接交互。一个Vue应用会将其挂载到DOM元素上然后对齐进行完全的控制,那个HTML是我们的入口,但是其他的都会发生在新创建的Vue实例内部。详情可见MVVM原理极其实现。 下面是Vue的一些基本知识点相关学习跟应用,差缺补漏吧。Vue.js官网好好看一遍还是很香的。 Vue实例 1、实例声明周期钩子函数 8个声明周期函数 模板语法 1、插值 ①、 v-once 指令,你也能执行一次性地插值,当数据改变时,插值处的内容不会更
vue开发项目必备知识
weixin_30266885的博客
05-17 432
Vue项目开发相关问题总结。 一、创建一个项目(两种方式) 1.通过CLI命令行创建,具体步骤如下: (1)Node 版本要求 Vue CLI 需要 Node.js 8.9 或更高版本 (推荐 8.11.0+)。 (2)下载vue命令行工具-----------$ npm install -g @vue/cli ...
Vue面试中,经常会被问到的面试题/Vue知识点整理
weixin_34310127的博客
09-10 9109
看看面试题,只是为了查漏补缺,看看自己那些方面还不懂。切记不要以为背了面试题,就万事大吉了,最好是理解背后的原理,这样面试的时候才能侃侃而谈。不然,稍微有水平的面试官一看就能看出,是否有真才实学还是刚好背中了这道面试题。(都是一些基础的vue面试题,大神不用浪费时间往下看) 一、对于MVVM的理解? MVVM 是 Model-View-V...
Vue-js必学必会
qq_36710146的博客
11-17 214
页面跳转:     1、方法一:window.location.href="commonaction/student/studentPage.do";      2、方法二(返回上一次浏览页面):window.history.back(-1);      3、方法三:window.navigate("top.jsp");     4、parent.addTabs({                ...
Vue知识点总结
liu0415111的博客
08-18 1194
1.Vue生命周期 》》在beforeCreate 和Created之间,进行初始化事件,进行数据的观测。此时还没有el选项 》》在Created钩子函数和beforeMount这一阶段发生的事情就比较多了。 首先 会判断对象是否有el选项,如果有就继续编译,如果没有则停止编译,也就意味着生命周期停止,直到在该实例上调用vm.$mount(el) template参数选项对生命周...
写文章

热门文章

  • uniapp开发WebRTC语音直播间支持app(android+IOS)和H5,并记录了所有踩得坑 5198
  • Vue3中Options-API 学习总结一 4413
  • 移动端开发的屏幕、图像、字体与布局的兼容适配 3909
  • 用TS封装了一个axios,支持全局拦截、实例拦截、单个请求拦截、loading等待功能 1925
  • 如何实现登录持久化 1914

分类专栏

  • vue 7篇
  • uniapp 2篇
  • 缓存 4篇
  • 微信小程序 1篇
  • ts 7篇
  • 布局适配 1篇
  • 可视化
  • js 5篇
  • nodejs 1篇
  • css 1篇
  • 前端模块化 2篇
  • DOM 1篇

最新评论

  • uniapp开发WebRTC语音直播间支持app(android+IOS)和H5,并记录了所有踩得坑

    折月煮清酒: 大佬 可以看看源码吗

  • uniapp开发WebRTC语音直播间支持app(android+IOS)和H5,并记录了所有踩得坑

    前端Baner: 能给我看看吗

  • uniapp开发WebRTC语音直播间支持app(android+IOS)和H5,并记录了所有踩得坑

    袁鹤桥: 哥,源码方便看一下吗

  • uniapp开发WebRTC语音直播间支持app(android+IOS)和H5,并记录了所有踩得坑

    香蕉is啵娜娜: 可以用,写两段script,一个scirpt lang="renderjs" ,这个里面可以用navigator

  • uniapp开发WebRTC语音直播间支持app(android+IOS)和H5,并记录了所有踩得坑

    &.Hi.&: 大佬,app移动端不是用不了navigator吗,为什么不管ios,android和h5获取媒体流里面都是一样的代码啊表情包

最新文章

  • uniapp开发APP通用方法
  • axios进阶——取消已经发出去的请求
  • Web本地缓存的正确使用
2024年4篇
2023年2篇
2021年26篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳坪山网站建设公司杭州优化网站排名服务商淘宝上的网站优化可以扬州专业网站seo优化公司正定网站优化推广哪家好网站优化怎么获取内容新余网站优化推广清水河网站推广优化承德网站优化seo网站优化外包哪家专业好许昌知名网站优化推荐郯城网站优化怎么做如何优化web网站的性能西丽网络推广和网站优化宁安优化网站武汉市网站建设优化公司农夫山泉网站链接怎么优化网站做seo优化是什么意思优化网站推广石首网站关键词优化绥化网站关键词优化威海个性化网站优化福州优化网站模式海口seo外包优化网站莱阳网站优化外包如何防止网站优化中的降权误区如何优化网站结构网站优化绿松石怎么河西区网站优化推广无锡江阴seo网站优化快捷的seo网站优化香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

深圳坪山网站建设公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化