当前位置:网站首页 > Vue.js开发 > 正文

vue中插槽的使用场景(vue三种插槽的区别)



1、在vue中watch和created哪个先执行?为什么?

答:watch 中的 immediate 会让监听在初始值声明的时候去执行监听计算,否则就是 created 先执行

2、vue中mixins和extends有什么区别?

3、vue中mixins有什么使用场景?

答:一般一些有重复方法的组件,可以考虑抽一个mixin。或者是比如一些页面权限控制的内容,也可以考虑抽一个mixin

4、在vue中created与activated有什么区别?

答:created():在实例创建完成后被立即调用。在这一步,实例已完成以下的配置:数据观测 (data observer),property 和方法的运算,watch/event 事件回调。然而,挂载阶段还没开始,$el property 目前尚不可用。

activated():是在路由设置<keep-alive></keep-alive>时,才会有这个生命周期。在被 keep-alive 缓存的组件激活时调用

5、在vue项目如何引入异步组件?

答:componets: {my-componets: () => import('https://blog.51cto.com/u_/my-model-component')}

6、​​在vue项目中scss scoped穿透符>>>无效的解决方案有哪些?​​

答:可以使用 /deep/ 操作符( >>> 的别名)

7、为什么在v-for中的key不推荐使用随机数或者index呢?那要怎么使用才比较好呢

答:因为在插入数据或者删除数据的时候,会导致后面的数据的key绑定的index变化,进而导致从新渲染,效率会降低;当数据进行更改的时候,会通过key来判断虚拟dom树是否进行了更改。如果发现了相同的dom-key就可以直接复用。减少了渲染的性能损耗

8、vue-loader在webpack编译流程中的哪个阶段?

答:编译模板阶段:从入口文件出发,调用所有配置的​​对模块进行翻译,再找出该模块依赖的模块,再递归本步骤直到所有入口依赖的文件都经过了本步骤的处理

10、你有用过预渲染技术吗?怎么做的?

答:​​https://www.jianshu.com/p/9067fdda1425?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation​​​  ​​javascript:void(0)​​

11、使用vue如何判断页面是否编辑及编辑页面未保存离开时,给出弹窗提示

答:使用watch监听数据的改变,在组件路由beforeRouterLeave中进行判断。​​demo​​

12、vue的.sync修饰符可以用表达式吗?为什么?
答:不可以
13、v-if和v-show哪个优先级更高?

答:​​https://github.com/haizlin/fe-interview/issues/2084​​​  ​​https://www.jianshu.com/p/a65076b6f3e7​​15、vue的v-for如何倒序输出?

答:页面渲染时,当页面中元素的位置,大小或结构、定位发生改变,或者对HTML结构增删查改时,浏览器会对所有的dom进行重新排序,这就是DOM回流,严重影响浏览器性能。

v-show指令其原理就是改变display涉及到了DOM结构所以发生了重排。

18、axios同时请求多个接口,如果当token过期时,怎么取消后面的请求?

答:​​javascript:void(0)​​19、从0到1自己构架一个vue项目,说说有哪些步骤、哪些重要插件、目录结构你会怎么组织

答:​​https://github.com/haizlin/fe-interview/issues/983​​20、你知道vue的模板语法用的是哪个web模板引擎的吗?说说你对这模板引擎的理解

答:

21、你知道v-model的原理吗?说说看

答:不能同名 因为不管是计算属性还是data还是props 都会被挂载在vm实例上,因此 这三个都不能同名

24、vue中data的属性可以和methods中的方法同名吗?为什么?

答:1、通过prototype,这个非常方便。Vue.prototype[method]=method;
  2、通过插件Vue.use(plugin);
  3、通过mixin,Vue.mixin(mixins);

26、vue2.0不再支持v-html中使用过滤器了怎么办?

答:如果现在让你从vue/react/angularjs三个中选择一个,你会选哪个?说说你的理由

答:1、使用v-for时记得加key,可以快速定位到需要更新的DOM节点,提高效率。
2、永远不要把 v-if 和 v-for 同时用在同一个元素上。提高渲染效率
3、优先通过 Vuex 管理全局状态,而不是通过 this.$root 或一个全局事件总线
34、你是从vue哪个版本开始用的?你知道1.x和2.x有什么区别吗?

35、你知道vue中key的原理吗?说说你对它的理解

答:Object.assign()方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象
this.$data获取当前状态下的data
this.$options.data()获取该组件初始状态下的data。
Object.assign(this.$data, this.$options.data())
37、vue渲染模板时怎么保留模板中的HTML注释呢?

答:comments设为true,默认false,设为true之后将会保留且渲染模块中的HTML注释,

38、Vue.observable你有了解过吗?说说看

答:vue中如果父组件想调用子组件的方法,可以在子组件中加上ref,然后通过this.$refs.ref.method调用


Vue中子组件调用父组件的方法,这里有三种方法提供参考:
1:直接在子组件中通过this.$parent.event来调用父组件的方法
2:在子组件里用$emit向父组件触发一个事件,父组件监听这个事件
3:父组件把方法传入子组件中,在子组件里直接调用这个方法

43、watch的属性用箭头函数定义结果会怎么样?

答:人工在index.html中引入
在Vue-cli3可以修改vue.config.js的baseurl设定
46、你有使用过babel-polyfill模块吗?主要是用来做什么的?

答:没用过;

Babel默认只转换新的JavaScript句法(syntax),而不转换新的API,比如Iterator、Generator、Set、Maps、Proxy、Reflect、Symbol、Promise等全局对象,以及一些定义在全局对象上的方法(比如Object.assign)都不会转码。

举例来说,ES6在Array对象上新增了Array.from方法。Babel就不会转码这个方法。如果想让这个方法运行,必须使用babel-polyfill,为当前环境提供一个垫片。

Babel默认不转码的API非常多,详细清单可以查看babel-plugin-transform-runtime模块的definitions.js文件。

47、说说你对vue的错误处理的了解?

答:​​http://www.imooc.com/article/?block_id=tuijian_wz​​48、在vue事件中传入$event,使用e.target和e.currentTarget有什么区别?

答:1.如果要在组件内部中进行强制刷新:调用this.$forceUpdate()强制重新渲染组件2.如果是刷新某个子组件:利用v-if指令的特性;当组件的key 值变更时,会自动的重新渲染

51、vue自定义事件中父组件怎么接收子组件的多个参数?

答:1:使用Vue.extend直接扩展、2:使用Vue.mixin全局混入、3HOC封装 4、加slot扩展

58、说下$attrs和$listeners的使用场景

答:​​javascript:void(0)​​59、分析下vue项目本地开发完成后部署到服务器后报404是什么原因呢?

1.检查nginx配置,是否正确设置了资源映射条件;
2.检查vue.config.js中是否配置了publicPath,若有则检查是否和项目资源文件在服务器摆放位置一致。答:
60、v-once的使用场景有哪些?

答:app定义一个方法传给我们,根据方法调用

66、使用vue写一个tab切换

答:​​javascript:void(0)​​68、怎么访问到子组件的实例或者子元素?

答:​​vue中优雅的使用定时器​​

73、vue组件会在什么时候下被销毁?

答:虚拟列表:vue-virtual-scroll-list,vue-virtual-scroller……

  冻结属性,让不必要的属性不响应:Object.freeze, 或者使用 Object.defineProperty 将对象属性的configurable设置为false

75、在vue中使用this应该注意哪些问题?

答:多用箭头函数吧

76、你有使用过JSX吗?说说你对JSX的理解

答:​​vue风格指南​​78、怎么配置使vue2.0+支持TypeScript写法?

答::class 绑定变量 绑定对象 绑定一个数组 绑定三元表达式 :style 绑定变量 绑定对象 绑定函数返回值 绑定三元表达式 ;​​demo​​82、你了解什么是函数式组件吗?

答:了解:​​javascript:void(0)​​83、vue怎么改变插入模板的分隔符?

答:​​https://cn.vuejs.org/v2/api/#delimiters​​84、组件中写name选项有什么作用?

答:我的理解:计算出虚拟 DOM 中真正变化的部分,并且只针对该部分进行 DOM 更新,而非重新渲染整个页面

94、vue如何优化首页的加载速度?

答:异步路由和异步加载;还有分屏加载, 按需加载, 延时加载图片等;做好ssr呗

95、vue打包成最终的文件有哪些?

答:ajax:最原始的后端请求技术,new XMLHttpRequest()创建xhr对象,用setRequestHeader()设置请求头、send发送请求等。。
  axios:写法axios().then().catch(),基于XMLHttpRequest封装的Promise实现版本,区别有从 node.js 创建 http 请求等
  fetch:fetch().then().then().catch(),基于原生js,没有使用XMLHttpRequest对象
97、vue能监听到数组变化的方法有哪些?为什么这些方法能监听到呢?

答:单向数据流:所有状态的改变可记录、可跟踪,源头易追溯;所有数据只有一份,组件数据只有唯一的入口和出口,使得程序更直观更容易理解,有利于应用的可维护性;一旦数据变化,就去更新页面(data-页面),但是没有(页面-data);如果用户在页面上做了变动,那么就手动收集起来(双向是自动),合并到原有的数据中。
双向数据流:无论数据改变,或是用户操作,都能带来互相的变动,自动更新。
101、移动端ui你用的是哪个ui库?有遇到过什么问题吗?

答:v-cloak指令只是在标签中加入一个v-cloak自定义属性,在HTML还编译完成之后该属性会被删除。
  v-pre可以用来阻止预编译,有v-pre指令的标签内部的内容不会被编译,会原样输出。
104、写出你知道的表单修饰符和事件修饰符

答:事件修饰符.stop .prevent .capture .self .once .passive
  表单修饰符.number .lazy .trim
105、说说你对proxy的理解

答:​​javascript:void(0)​​106、你有自己用vue写过UI组件库吗?

答:用过;that.chart.setOption(this.option, true)第二个参数默认是false,更新echarts时,之前的数据不会删掉,一直在后面递增;柱状图绑定点击时间的时候,更新图标之前一定要销毁事件,不谈事件会递增;

109、如果让你教一个2-3年经验前端经验的同事使用vue,你该怎么教?

答:太多了,百度吧;​​javascript:void(0)​​111、SSR解决了什么问题?有做过SSR吗?你是怎么做的?

答:1.使用vue的transition标签结合css样式完成动画
  2.利用animate.css结合transition实现动画
  3.利用 vue中的钩子函数实现动画
115、vue在created和mounted这两个生命周期中请求数据有什么区别呢?

答:看实际情况,一般在 created(或beforeRouter) 里面就可以,如果涉及到需要页面加载完成之后的话就用 mounted。

116、vue父子组件双向绑定的方法有哪些?

答:1.利用对象的引用关系来实现
  2.父子组件之间的数据传递
  3.使用.sync修饰符
117、vue怎么获取DOM节点?

答:无;​​参考文献​​119、vue项目有使用过npm run build --report吗?

答:devServer中把所有的服务人员的地址代理都写进去,
  然后动态更改接口的baseUrl,这样切换不同后端人员的时候不用重启
123、vue要做权限管理该怎么做?如果控制到按钮级别的权限怎么做?

答:​​https://panjiachen.github.io/vue-element-admin-site/zh/guide/essentials/permission.html#%E6%8C%87%E4%BB%A4%E6%9D%83%E9%99%90​​124、说下你的vue项目的目录结构,如果是大型项目你该怎么划分结构和划分组件呢?

答:views目录存放一级路由的组件,即视图组件
  Components目录存放组件
  Store存放vuex相关文件
  Router目录存放路由相关文件
  Untils目录存放工具js文件
  API目录存放封装好的与后端交互的逻辑
  Assets存放静态文件
125、在移动端使用vue,你觉得最佳实践有哪些?

答:可以直接监听到对象的新增和删除、监听的是整个对象而不是对象的一个属性;可以监听到整个数组变化

128、vue开发过程中你有使用什么辅助工具吗?

答:​​https://www.jianshu.com/p/d4a0​​130、怎么缓存当前的组件?缓存后怎么更新?

答:keep-alive
  通过actived钩子
131、你了解什么是高阶组件吗?可否举个例子说明下?

答:复用组件;比如说一个全局的alert ​​demo​​​ ​​demo​​135、如果将axios异步请求同步化处理?

答:​​https://learnku.com/articles/4382/seven-ways-to-define-a-component-template-by-vuejs​​140、SPA单页面的实现方式有哪些?

答:一般在created 因为在这个生命周期我们常用到的都已经初始化好了
  如果涉及dom 那就mounted
149、你有用过事件总线(EventBus)吗?说说你的理解

答:优点:模块化,开发及维护成本较低
  缺点:SPA项目过大时首屏加载慢
151、DOM渲染在哪个周期中就已经完成了?

答:156、如何引入scss?引入后如何使用?

答:1、安装scss依赖包
  2、在 webpack下配置好对应的loader
  3、在style样式标签上添加lang="scss",即<style lang="scss">。
157、使用vue开发过程你是怎么做接口管理的?

答:一,数据驱动:专注于View 层。它让开发者省去了操作DOM的过程,只需要改变数据。
  二,组件响应原理:数据(model)改变驱动视图(view)自动更新
  三,组件化:扩展HTML元素,封装可重用的代码。
167、v-model是什么?有什么用呢?

答:直接添加属性会因为新的属性没有监听导致页面不能响应该数据的变化。通过vue.$set方法来动态添加响应式属性
对象类型写法:this.$set("要给哪个对象添加","添加的对象的key",'添加的对象的value')
数组类型写法:this.$set('你要修改的数据','你要修改这个数组的索引值',要修改的值val)

172、组件和插件有什么区别?

答:组件 (Component) 是用来构成你的 App 的业务模块,它的目标是 App.vue。;插件 (Plugin) 是用来增强你的技术栈的功能模块,它的目标是 Vue 本身。

173、说说你使用vue过程中遇到的问题(坑)有哪些,你是怎么解决的?

答:el: 把当前实例挂载在元素上
  template: 实例模版, 可以是​​​​中的template, 也可以是template选项, 最终会编译成render函数
  render: 不需要通过编译的可执行函数
  template和render, 开发时各有优缺点, 不过在线上尽量不要有template

template模版 -> 编译生成 AST(提取最大静态树) ->生成render函数 ->生成虚拟dom -> 经过diff、patch算法 生成新的ui

175、vue实例挂载的过程是什么?

答:​​https://www.jianshu.com/p/7508d2a114d3​​176、vue在组件中引入插件的方法有哪些?

答:vue无法监听的数组变化的场景:【1】通过数组索引改变数组元素的值;【2】改变数组的长度 ;解决方案:【1】this.$set(arr, index, newVal);【2】通过splice(index,num,val)【3】使用临时变量作为中转,重新赋值数组;
  vue无法监听到对象变化的场景:【1】对象的增加、删除无法被vue监听到;解决方案:【1】使用 this.$set(object, key, value)(vue 无法监听 this.set 修改原有属性)【2】使用Object.assign(),直接赋值的原理;(推荐使用)

179、$nextTick有什么作用?

184、vue如何监听键盘事件?

答:keep-alive是Vue内置的一个组件,可以使被包含的组件保留状态,或避免重新渲染

189、怎么使css样式只在当前组件中生效?

答:​​https://cn.vuejs.org/v2/guide/custom-directive.html#%E7%AE%80%E4%BB%8B​​192、v-show和v-if有什么区别?使用场景分别是什么?

答:194、说下你对指令的理解?

答:虚拟DOM是:用JS来模拟一颗 DOM 树,放在浏览器内存中
  当你要改变时,虚拟 DOM 使用 diff 算法进行 新旧虚拟 dom 的比较将修改了的更新到实际的 DOM 树,减少了 DOM 操作
198、什么是双向绑定?原理是什么?

答:1、vue是完整一套由官方维护的框架,核心库主要有由尤雨溪大神独自维护,而react是不要脸的书维护(很多库由社区维护),曾经一段时间很多人质疑vue的后续维护性,似乎这并不是问题。
  2、vue上手简单,进阶式框架,白话说你可以学一点,就可以在你项目中去用一点,你不一定需要一次性学习整个vue才能去使用它,而react,恐怕如果你这样会面对项目束手无策。
  3、语法上vue并不限制你必须es6+完全js形式编写页面,可以视图和js逻辑尽可能分离,减少很多人看不惯react-jsx的恶心嵌套,毕竟都是作为前端开发者,还是更习惯于html干净。
  4、很多人说react适合大型项目,适合什么什么,vue轻量级,适合移动端中小型项目,其实我想说,说这话的人是心里根本没点逼数,vue完全可以应对复杂的大型应用,甚至于说如果你react学的不是很好,写出来的东西或根本不如      vue写的,毕竟vue跟着官方文档撸就行,自有人帮你规范,而react比较懒散自由,可以自由发挥
  5、vue在国内人气明显胜过react,这很大程度上得益于它的很多语法包括编程思维更符合国人思想
200、说说vue的优缺点

答:优点:1. 数据驱动
  2.模块化
  3.轻量级
  4.SPA
  5. 版本3.0的界面化管理工具比较好使
  6.vue易入门
缺点:1. 不支持低版本浏览器
201、有使用过vue吗?说说你对vue的理解

答:同上

长风破浪会有时,直挂云帆济沧海

到此这篇vue中插槽的使用场景(vue三种插槽的区别)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 泰拉瑞亚怎么调节日时间(泰拉瑞亚1.4怎么调日期)2025-01-02 11:54:05
  • 前端工程化(前端工程化:基于 Vue.js 3.0 的设计与实践)2025-01-02 11:54:05
  • ubuntu源码下载(ubuntu20.04 源)2025-01-02 11:54:05
  • dist反编译 vue(vue反编译工具)2025-01-02 11:54:05
  • vmware12.0密钥(vmware workstation12pro密钥)2025-01-02 11:54:05
  • vue2生命周期面试题(vue 生命周期面试题)2025-01-02 11:54:05
  • spss27.0软件下载(spss23.0下载)2025-01-02 11:54:05
  • redhat linux 7.2系统安装详细过程(redhat linux6.5安装教程)2025-01-02 11:54:05
  • 安装nodemodules命令报错安装vue-loader(vue安装node_modules)2025-01-02 11:54:05
  • win3.2安装(win3.2安装教程)2025-01-02 11:54:05
  • 全屏图片