vue相关知识

1. vue和react的相同点

  1. 都支持服务器渲染;
  2. 都有虚拟DOM、组件化开发,都通过props完成父子组件间的数据传递,都实现组件化规范;
  3. 都有仓库(管理状态):react有redux、vue有vuex;

2. vue和react的区别:

  1. react只针对MVC框架的view层,而vue是一个完整的MVVM模式;
  2. 虚拟DOM不一样:vue会通过跟踪依赖实现只对状态更新部分进行重新渲染;而react会在状态有改变时,重新渲染每个组件,所以在react中会有shouldComponentUpdate生命周期函数;
  3. 数据绑定:vue实现了数据的双向绑定,而react的数据流向是单向的;
  4. 组件写法不一样:vue的写法是webpack+vue-loader的单文件组件格式;而react的写法是JSX+行内样式;
  5. state对象在react中只能通过setState改变状态;在vue中,state对象不是必需的,数据由data属性在vue对象中管理。

3. vue的原理:

  • vue是一个构建数据驱动的web界面的渐进式框架,采用MVVM模式实现视图层与数据层的数据修改、更新监听。其工作原理是vue在实例化的过程中会遍历data下的数据,通过Object.defineProperty()方法将它们设置为存储器属性(即具有getter、setter属性)。

4. vue的特点:

  1. 简洁:页面由HTML模板+ JSON数据+ Vue实例组成;
  2. 数据驱动:自动计算属性和追踪依赖的模板表达式;
  3. 组件化:用可复用、解耦的组件来构造页面;
  4. 轻量:代码量小,不依赖其他库;
  5. 快速:精确有效批量DOM跟新。

5.scss是什么:

  • scss是一款css预处理语言,可编写函数,定义变量,可嵌套。

6.为什么vue中的data必须是一个函数:

  • 对象是引用类型,在重用组件时,由于数据对象都指向同一个data对象,当在一个组件中修改data时,其他重用的组件中的data会同时被修改。使用返回对象的函数,由于每次返回的是一个新的对象,引用地址不同,就不会出现这个问题。

7.active-class是哪个组件的属性:

  • vue-router模块的router-link组件。

8.vue-router有哪几种导航钩子:

  1. 全局导航钩子,可以用在路由跳转前做判断拦截
  2. 组件内的钩子
  3. 单独路由独享钩子

9.vue-cli项目中src目录中每个文件夹和文件的用法:

  • assets:放静态资源
  • component:放组件
  • router:定义路由相关的配置
  • app.vue:是一个应用主组件
  • main.js:是入口文件

10.vue组件通讯

  1.父传子

    • 父:自定义属性名+ 数据
    • 子:props["父组件上的自定义属性名"]

  2. 子传父

    • 在父组件中注册子组件并在子组件标签上绑定自定义事件的监听
    • 子:this.$emit("自定义事件名",数据)+ 子组件标签上绑定@自定义事件名="回调函数"
    • 父:methods:{自定义事件( ){ }}

  3. 事件总线  let bus = new Vue()

    • A:methos:{函数{bus.$emit("自定义事件名",数据)}} -> 发送
    • B:created(){bus.$on("A发送过来的自定义事件名")} -> 接收

11. vue路由传参

  1. 使用query方式传入的参数使用this.$route.query接收
  2. 使用params方法传入的参数使用this.$route.params接收

12. 计算属性和watch的区别

  • computed属性是用来声明式地描述一个值依赖了其他值。当你在模板里把数据绑定在一个计算属性上时,vue会在其依赖的任何值导致该计算属性改变时更新DOM。这个功能非常强大,可以让你的代码更加声明式、数据驱动并且易于维护。
  • 配置参数watch用来监听实例下的属性,当监听的值发生改变时会自动调用对应的方法。
  • 而计算属性计算的是绑定在它上面的属性所依赖的属性,它不能计算在data中已定义过的变量。

13. vuex是什么?有哪几种属性?

  • vuex是一个专门为vue.js程序开发的状态管理模式。有四种属性:state、getter、mutation、action

14. vuex的state是什么?

  • vuex就是一个store,store里面放了很多对象。其中state就是数据源存放地,对应于vue中的data。state里存放的数据是响应式的,vue从store中读取数据,当store中的数据发生改变时,依赖这些数据的组件也会发生改变。它通过mapState把全局的state和getter映射到当前组件的computed属性。

15. vuex的getter是什么?

  • getter用来对state进行计算操作,它就是store的计算属性。虽然在组件内也可以做计算属性,但是getter可以在多组件复用。它对应于vue对象中的computed。

16. vuex的mutation是什么?

  • 更改vuex中store中的state的唯一方法是提交mutation。

17. vuex的action是什么?

  • action类似于mutation,不同的是action提交的是mutation,而不是直接变更状态。action可以包含任何异步操作。

18. v-show和v-if的相同点和不同点:

  • v-show指令是通过修改元素的display属性让其显示或隐藏。
  • v-if是直接销毁和重建DOM达到让元素显示和隐藏的效果。

19. 如何让css只在当前组件中起作用:

  • 将当前组件的<style>设置为<style scoped>

20. <keep-alive />的作用是什么?

  • <keep-alive />包裹动态组件时,会缓存不活动的组件实例,主要用于保留组件状态或者避免重新渲染。

21. v-on常用修饰符

  • .native主要是给自定义组件添加原生事件
  • .stop主要用于阻止事件冒泡 【e.stopPropagation()】
  • .prevent主要用于阻止当前事件的默认行为
  • .self主要用于设置当事件是从事件绑定的元素本身触发时才会触发回调
  • .once表示绑定的事件是一次性的,仅被触发一次

22. v-for、key的作用:

  • 当vue用v-for更新已经渲染过的元素列表时,默认采用“复用”原则。如果数据项的顺序被改变,vue不是移动DOM元素来匹配数据项的改变,而是简单复用此处每个元素,并且确保它在特定索引下显示已被渲染过的每个元素。
  • 为了给vue一个提示,以便他能够跟踪每个节点,从而重新排序现有的元素,需要为每项提供一个唯一的key属性。key属性的类型只能是string或者number类型。
  • 使用key,vue会基于key的变化重新排列元素顺序,并且会移除key不存在的元素。

23. Promise对象是什么?

  • Promise是异步编程的一种解决方案,它是一个容器,保存着未来某个时间点才会结束的事件的结果。
  • Promise是一个对象,从它可以获取异步操作的消息。
  • Promise提供统一的API,各种异步操作都可以用同样的方式进行处理。
  • Promise对象是一个构造函数,用来生成Promise实例。
  • 特点:
    • 对象的状态不受外界影响。promise对象代表一个异步操作,有三种状态:pending(进行中)、fukfikked(已成功)和rejected(已失败)。只有异步操作的结果可以决定当前是哪一种状态,任何其他操作都无法改变这个状态。
    • 一旦状态改变,就不会再变,任何时候都是可以得到这个结果。
  • 缺点:
    • 无法取消promise,一旦建立他就会立即执行,无法中途取消。
    • 如果不设置回调函数,promise内部跑出的错误无法反映到外部。当pending的时候,无法知道进展到了哪一步。

24. axios的特点是什么?

  1. axios是一个基于promise的http库,支持promise的所有API;
  2. 它可以拦截请求和响应;
  3. 它可以转换请求数据和响应数据,并对响应回来的数据转换为json类型的数据;
  4. 它安全性更高,客户端支持防御CSRF(跨域请求伪造)

25. vue的路由模式以及实现方式?

  1. hash模式:在浏览器中"#"及其后面的字符称为Hash,用window.location.hash读取;hash虽然在URL中,但不被包括在http请求中;只用来指导浏览器动作,对服务器安全无用,hash不会重加载页面。
  2. history模式:history采用h5新特性,且提供了两个新方式:pushState(),replaceState()可以对浏览器历史记录栈进行修改;popState事件监听状态变更。

26. vue中的ref是什么?

  • ref用来给元素或者子组件注册引用信息。引用信息将会注册在父组件的$refs上。【如果在普通的DOM元素上使用,引用指向的就是DOM元素;如果用在子组件上,引用就指向组件实例】

27. $route和 $router的区别?

  • $route是“路由信息对象”,包括path、params、query、hash、fullpath、name等路由信息参数。
  • $router是“路由实例对象”,包括路由的跳转方式、钩子函数等。

28. vue.js的两个核心是什么?

  • 数据驱动、组件系统

29. vue如何兼容ie问题?

  • babel-polyfill插件

30. 页面刷新vuex被清空的解决方法?

  • sessionStorage存储到本地,定义beforeUnload事件,使得点击页面刷新时先将state数据保存到sessionStorage,然后才真正刷新页面

31. vue改变组件触发视图更新(如何设置响应式属性)?

  1. 初始化时写入data属性
  2. 调用方法:Vue.set(target,key,value)
  3. 以下方法的调用会更改原始数组:push(),pop(),shift(),unshift(),splice(),sort(),reverse()

32. DOM渲染在哪个周期中就完成了?

  • mounted阶段。mounted不会承诺所有子组件都一起被挂载,使用vm.$nextTick可以实现整个视图已经渲染完毕。

33. 简述每个生命周期具体适合哪些操作?

  • beforecreated:可以在这加个loading事件,在加载实例时触发;
  • created:初始化完成时的事件写在这里,如结束loading、异步请求调用;
  • mounted:挂在节点,获取DOM节点;
  • updated:对数据统一处理;
  • beforeDestory:可做确认停止事件。

34. 第一次加载会触发哪几个钩子?

  • beforeCreate、created、beforeMount、mounted

原文地址:https://www.cnblogs.com/pleaseAnswer/p/11999857.html

时间: 2024-10-15 01:50:22

vue相关知识的相关文章

vue基础知识之vue-resource/axios

Vue基础知识之vue-resource和axios(三) vue-resource Vue.js是数据驱动的,这使得我们并不需要直接操作DOM,如果我们不需要使用jQuery的DOM选择器,就没有必要引入jQuery.vue-resource是Vue.js的一款插件,它可以通过XMLHttpRequest或JSONP发起请求并处理响应.也就是说,$.ajax能做的事情,vue-resource插件一样也能做到,而且vue-resource的API更为简洁.另外,vue-resource还提供了

python的list相关知识

关于list的相关知识 list01 = ['alex',12,65,'xiaodong',100,'chen',5] list02 = [67,7,'jinjiao_dawang','relax1949',53] #打印list01.list02 print(list01) print(list02) #列表截取.切片 print(list01[1]) print(list01[-2]) print(list01[1:3]) #列表重复 print(list01 * 3) #列表组合 prin

三层交换机相关知识

三层交换机相关知识 这次的作死之路又要开始了.这次的对象主要是交换机:还是三层的: 这是这次实验的总体用图: 现在现根据图上的标志:将所有的主机配置好:目前没有做任何vlan:所以PC1和PC3是能够互通的: 接下来:我想先去探索下三层交换机关闭portswitch会怎么样: 第一步:先关闭了再说: 因为按照图中的设计:PC1的帧如果想要到达PC2,那么就必然要经过LSW1.但是现在我关闭了g0/0/1端口的portswitch:现在pc1并不能ping通pc2: 通过百度:三层交换机的端口不仅

php学习day7--函数的相关知识

今天我们主要学了函数的相关知识,是个比较基础的知识,但也是很重要的. 一.函数 函数就类似于一个工具,我们写好函数之后可以直接进行调用,可以很大的减少代码的从用性,提高页面性能和可读性. 1.函数的定义 在php中函数的定义方式为: function  name($形参1,$形参2.....){ 要执行的代码 return  123: } 在上方的函数定义式中,name代表函数名,小括号内是形参,是用来传递参数,花括号中的就是调用时需要执行的代码. 函数的调用方式: name(实参1,实参2,.

svn常规操作与相关知识

Svn常规操作与相关知识 一.何谓版本控制 它是一种软件工程籍以在开发的过程中,确保由不同人所编辑的同一档案都得到更新,它透过文档控制记录程序各个模块的改动,并为每次改动编上序号,并且编辑错误之后还可以回溯到以前的版本 二.可供我们选择的版本控制系统 1.VCS  (本地版本控制) 2.VSS.CVS(集中版本控制) 3.ClearCase.SVN.Perforce.TFS(集中版本控制) 4.Mercurial(水银/水星).Git(分布式版本控制) 差异: 1.Git和其他版本控制系统的主要

黑马程序员---Objective-C基础学习---类、对象、方法相关知识笔记

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 类.对象.方法相关知识笔记 Objective-C相对于C语言有了面向对象的特性,但是ObjC又没有其他面向对象语言那么多语法特性,ObjC本身对面向对象进行了精简.下面是一些相关知识笔记. 类定义 成员变量 方法和属性 self关键字 类定义 在C#.Java等其他高级语言中定义一个类是相当简单点的,直接一个关键字class加一对大括号基本就完成了,但是在ObjC中类的定义相对变化比较大.现

深入浅出安卓学习相关知识,如何从零学好移动开发

原文发表自我的个人主页,欢迎大家访问 http://purplesword.info/mobile-develop 由于近几年来互联网的飞速发展,安卓和iOS平台的大量普及推广,移动开发在当前是非常热门的一个方向. 有不少同学问我如何学习安卓,要学些什么,难不难学.之前一直没有想好应该怎么回答这个问题,只是简单的说安卓自身门槛不高,并不难学.因为我觉得准确回答一个类似这样的问题往往需要灵感.现在根据我的学习体验,做个大概的总结. 1.我为什么学安卓 我从刚开始接触安卓开发到现在也有两三年的时间了

linux 服务器分区格式化相关知识 -mount

关于linux 系统mount和mkfs 的相关知识: 使用mount 1)  Mount的相关格式:mount [-t 文件类型][-o  选项] devicedir 详解: -t 文件类型,通常默认mount会自动选择正确的类型,通常类型ext2/ext3/ext4之类的. 常用的类型有:                  光盘或光盘镜像:iso9660 DOS fat16文件系统:msdos Windows 9x fat32文件系统:vfat Windows NT ntfs文件系统:ntf

【转载】前端面试“http全过程”将所有HTTP相关知识抛出来了...

原文:前端面试“http全过程”将所有HTTP相关知识抛出来了... 来一篇串通,一个http全过程的问题,把所有HTTP相关知识点都带过一遍 http全过程 输入域名(url)-->DNS映射为IP-->TCP三次握手-->HTTP请求-->HTTP响应-->(浏览器跟踪重定向地址)-->服务器处理请求-->服务器返回一个html响应-->(视情况决定释放TCP连接)-->客户端解析HTML-->获取嵌入在HTML中的对象重新发起http请求