前端面试题-Vue


vue数据绑定的原理

     采用数据劫持结合发布者-订阅者模式的方式,通过 Object.defineProperty() 来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应监听回调。(Object的defineproperty属性,重写data里面的get与set)

谈谈vue命名视图

    就是给router-view增加个name属性,路由表里直接name属性的值为某个文件。为视图展示更好的做了区分,跟router的命名一个道理。

vue深度监听

    watch监听中增加了个属性deep:true,就代表深度监听。deep的意思就是深入观察,监听器会一层层的往下遍历。为什么要用呢,因为如果你监听的是一个对象的话,不使用深度监听是不会触发这个handler方法的   

聊聊你对Vue.js的template编译的理解

    通过编译器 将 template 转化成 virtual node 虚拟DOM节点。通过render 函数渲染到视图中(VNode是vue的虚拟DOM节点,里面包含标签名、子节点、文本等)

谈谈vue-router

    分为全局路由守卫/单个路由守卫/组件路由守卫

    全局: router.beforeEach / router.afterEach 

    单个路由守卫:beforeEnter

    组件路由守卫:beforeRouteEnter / beforeRouteUpdate / beforeRouteLeave

vue-loader是什么?使用它的用途有哪些?

   vue-loader是基于webpack的。用于处理.vue文件,通过webpack打包编译成我们浏览器认识的代码

nextTick 干嘛用的,如何使用

    将回调延迟到DOM 更新之后需要操作的话,就使用这个方法。

    在页面视图更新完或者数据渲染完之后的操作就再写nextTick方法里,这样等数据渲染完它就会执行里面的操作

vue配置打包环境

    在static文件下创建一个config.js,里面直接用window.g={里面配置开发环境/测试环境/线上环境的一些地址},再将它引入到index.html中。在整个项目中都能以window.g.api来调用了。

项目中如何结合axios封装http请求,并详解axios拦截器

   先建一个http.js,引入axios。在export const jsonPost 方法,里面return axios ({ method:'post'})等一些配置

   axios.interceptors.request 请求前拦截

   axios.interceptors.response 请求响应拦截 

   请求前拦截对全局的loading,token等做出处理,不用每次调用请求前取做判断处理

   请求响应拦截 对返回的状态做处理以及相对应的提示文案

简述sass与less的区别

    1.编译环境不同

        less是通过js编译 是在客户端处理

        sass同通过ruby 是在服务器端处理

    2.变量符不一样

         less是用@,sass是用$

    3.sass支持条件语句,可以使用if{}else{},for{}循环等等。而less不支持

vue如何封装组件

     首先,使用Vue.extend()创建一个组件

    ● 然后,使用Vue.component()方法注册组件

    ● 接着,如果子组件需要数据,可以在props中接受定义

    ● 最后,子组件修改好数据之后,想把数据传递给父组件,可以使用emit()方法

vue-cli3跟2相比有哪些不同

    1.创建项目的方式不同,3是vue create myPorject。2是vue init webpack  myPorject

    2. 3.0的安装项目时自动下载node-model。build没了、config没了

    3. 需要自己手动在根目录下配置一个config.js

ui框架的默认样式在scoped的情况下如何修改

         常用的就是深度选择器  .a >>> .b { color :red}

HTTP与HTTPS

    1、http https 的概念、区别

         概念:超文本网络传输协议

         区别:①https需要申请安全证书(CA)

              ②http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。

              ③http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

              ④http的连接很简单,是无状态的。Https协议是由SSL+Http协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

    2、tcp三次握手(http三次握手,https四次握手-中间多了次 传输 SSL 加密协议)

      ①客户端发送资源包给服务器端,服务器端被动接收

      ② 服务器端接收到资源包,发送给客户端一个新资源包和应答

      ③ 客户端在收到新的资源包和回应服务端收到了,二边开始传送数据!

你可能感兴趣的:(前端面试题-Vue)