当前位置: 首页 > news >正文

北京建设网站图片qq排名优化网站

北京建设网站图片,qq排名优化网站,厦门做网站哪家公司好,海南省城乡与住房建设厅网站文章目录 37、谈谈你对 keep-alive 的了解38、说一说Vue2的响应式原理?39、你都做过哪些Vue项目上的性能优化40、你知道style加scoped属性的用途和原理吗41、mixins混入的理解42、Vue路由懒加载怎么做的43、SSR了解吗?44、computed和watch的区别是什么?45、 Vue项⽬的打包上…

文章目录

  • 37、谈谈你对 keep-alive 的了解
  • 38、说一说Vue2的响应式原理?
  • 39、你都做过哪些Vue项目上的性能优化
  • 40、你知道style加scoped属性的用途和原理吗
  • 41、mixins混入的理解
  • 42、Vue路由懒加载怎么做的
  • 43、SSR了解吗?
  • 44、computed和watch的区别是什么?
  • 45、 Vue项⽬的打包上线?
  • 46、vue中动态组件如何使用?

37、谈谈你对 keep-alive 的了解

  1. 是什么?
    ● keep-alive 是 Vue 内置的一个组件,可以使被包含的组件保留状态,避免重新渲染, 一般结合路由和动态组件一起使用,用于缓存组件
  2. 具体使用?
    2.1. 对应两个钩子函数 activated 和 deactivated ,当组件被激活时,触发钩子函数 activated,当组件被移除时,触发钩子函数 deactivated
    2.2. 提供 include 和 exclude 属性,两者都支持字符串或正则表达式, include 表示只有名称匹配的组件会被缓存,exclude 表示任何名称匹配的组件都不会被缓存 ,其中 exclude 的优先级比 include 高

38、说一说Vue2的响应式原理?

Vue2的响应式原理核心是通过数据劫持结合发布-订阅模式实现的,具体步骤如下:

  1. 数据劫持
    Vue2使用Object.defineProperty递归劫持对象的属性,将其转化为getter/setter。当读取数据时触发getter,修改数据时触发setter。
  2. 依赖收集(Dep)
    每个被劫持的属性都有一个Dep实例(依赖管理器)。在getter中,若当前存在正在执行的Watcher(如组件渲染时的渲染Watcher),则将该Watcher存入Dep的订阅列表,建立属性与Watcher的依赖关系。
  3. 派发更新(Watcher)
    当数据变化触发setter时,Dep会通知所有关联的Watcher执行更新(如重新渲染组件)。Watcher通过异步队列优化多次更新,确保性能。
  4. 数组处理
    Object.defineProperty无法监听数组索引变化,Vue2重写了数组的push、pop等7个方法。调用这些方法时手动触发更新,并通过__ob__属性关联数组的Dep。
    局限
    ● 对象新增/删除属性需用Vue.set/Vue.delete。
    ● 数组直接通过索引修改或修改长度无法被监听,需用重写的方法或Vue.set

39、你都做过哪些Vue项目上的性能优化

  1. v-if和v-for不能连用
  2. 页面采用keep-alive缓存组件
  3. 合理使用v-if和v-show
  4. key保证唯一
  5. 使用路由懒加载、异步组件、组件封装实现复用
  6. 防抖、节流
  7. 第三方模块按需导入
  8. 图片懒加载
  9. 精灵图的使用
  10. 代码压缩
  11. CDN外链
    a. 把项目中的三方库在打包的时候先排出
    b.使用CDN的外部链接引入, 这样就能减少包的体积, 提高首屏加载的速度

40、你知道style加scoped属性的用途和原理吗

  1. 用途:防止全局同名CSS污染
  2. 原理:在标签加上v-data-hash属性,在当前组件的所有css样式选择器时加上对应[v-data-hash],即CSS带属性选择器,以此完成类似作用域的选择方式.

41、mixins混入的理解

  1. 是什么
    ● mixins(混入),当发现多个vue组件的选项和钩子函数有部分或者较多的相同的代码, 此时就可以把相同代码的选项和钩子函数给抽到一个mixins对象, 在组件中导入该对象进行混入即可
  2. 使用场景
    ● 不同组件中经常会用到一些相同或相似的代码,这些代码的功能相对独立。可以通过mixin 将相同或相似的代码提出来
  3. 如何创建Mixins
    ● 在 src 目录下创建一个 mixins 文件夹,在文件夹下新建一个 myMixins.js 文件。
    ● 因为 mixins 是一个 js 对象,所以应该以对象的形式来定义 myMixins,在对象中可以和 vue 组件一样来定义 data、components、methods、created、computed 等属性,并通过 export 导出该对象
    ● 在需要调用的组件中引入 myMixins.js 文件,直接混入即可
    ● 使用注意点:
    ○ 有冲突先用组件自身:
    ■ 如果混入的和data/computed/methods选项中有重名的, 使用组件中定义的属性
    ○ 没有冲突则叠加:
    ■ 如果混入钩子函数代码, 优先执行混入的再去执行组件钩子函数内部的代码
  4. 缺点
    ● 变量来源不明确
    ● 多 mixins 可能会造成命名冲突
    ● mixins 和组件出现多对多的关系,使项目复杂度变高
  5. 解决缺点
    ● Vue3的组合API 解决了mixins引起的所有问题(不清晰的数据来源,命名冲突等),这也是Vue3中组合式API出现的原因之一

42、Vue路由懒加载怎么做的

  1. 是什么?
    ● 路由懒加载也叫延迟加载,即在需要的时候进行加载,随用随载
  2. 为什么?
    ● 像vue这种单页面应用,如果没有懒加载,运用webpack打包后的文件将会异常的大
    ● 造成进入首页时,需要加载的内容过多,时间过长,会出现长时间的白屏,即使做了loading也是不利于用户体验
    ● 而运用懒加载则可以将页面进行划分,需要的时候加载页面,可以有效的分担首页所承担的加载压力,减少首页加载用时
  3. 如何使用?
    ●import按需加载
export default new Router({routes: [{path: '/',name: 'HelloWorld',component: () => import('@/components/HelloWorld.vue')}
]

vue异步组件

export default new Router({routes: [{path: '/',name: 'HelloWorld',component: resolve => require(['@/components/HelloWorld'], resolve)}
]

43、SSR了解吗?

  1. 是什么
    ● SSR也就是服务端渲染,也就是将Vue在客户端把标签渲染成HTML的工作放在服务端完成,然后再把html直接返回给客户端。
    ● SSR 是一种网页渲染技术,与传统的客户端渲染(Client-Side Rendering,CSR)相对应。在传统的客户端渲染模式下,浏览器首先加载 HTML 页面,这个 HTML 页面往往只有一个基本的结构,包含一些必要的脚本引用等,然后由浏览器中的 JavaScript 代码去获取数据,并动态地将数据填充到页面中,最终渲染出完整的、用户可见的页面内容。而服务器端渲染则是在服务器端就把完整的、包含了最终页面内容的 HTML 页面直接生成好,然后发送给浏览器,浏览器接收到后可以直接展示出来,后续再通过加载 JavaScript 等资源来进行交互等操作。
  2. 优点和缺点
    优点:
    ● 更快的首屏加载速度
    ● 利于 SEO(搜索引擎优化)
    缺点:
    ● 增加服务器负载
    ● 上手成本高
  3. 进行SSR开发, 可以用哪些技术栈?
    ● Next.js(基于 React)
    ●Nuxt.js (基于 Vue)

44、computed和watch的区别是什么?

计算属性computed:

  1. 支持缓存,只有依赖数据发生改变,才会重新进行计算
  2. 不支持异步,当computed内有异步操作时无效,无法监听数据的变化
  3. 如果computed需要对数据修改,需要写get和set两个方法,当数据变化时,调用set方法
  4. computed擅长处理的场景:一个数据受多个数据影响,例如购物车计算总价
    侦听属性watch:
  5. 不支持缓存,数据变,直接会触发相应的操作;
  6. watch支持异步;监听的函数接收两个参数,第一个参数是最新的值;第二个参数是输入之前的值;
  7. immediate:组件加载立即触发回调函数执行
  8. deep:true的意思就是深入监听,任何修改obj里面任何一个属性都会触发这个监听器里的 handler方法来处理逻辑
    5.watch擅长处理的场景:一个数据影响多个数据,例如搜索框

45、 Vue项⽬的打包上线?

  1. ⼿动部署
    在这里插入图片描述
    2.自动部署
    本地Vscode编写代码,git push 将代码上传到gitlab托管平台, 通过.gitlab-ci.yml配置⽂件执⾏部署流程
    在这里插入图片描述
    1.gitlab是企业版,内部部署
    2.Linux服务器
    ● 安装 gitlab-runner ⽤于拉取仓库代码
    ● 安装 Nodejs ⽤于打包项⽬
    ● 安装 pm2 ⽤于启动静态资源托管,守护进程
    3.运维使⽤ Nginx 进⾏域名代理
    4.⽤户通过浏览器访问服务

46、vue中动态组件如何使用?

Vue中的动态组件允许根据条件动态切换不同的组件渲染,核心是通过  标签与 is 属性实现。以下是关键点:

  1. 使用 ,通过 currentComponent 动态绑定要渲染的组件名或组件对象:
<!-- 动态切换组件 -->
<component :is="currentTab"></component>

2.组件类型
is 的值可以是:
○ 注册的组件名(字符串)
○ 组件选项对象(直接引入的组件)
○ 异步组件(结合 import() 动态加载)
3. 保持状态
用  包裹动态组件,避免切换时组件实例被销毁

<keep-alive><component :is="currentComponent"></component>
</keep-alive>

使用场景:

  1. Tab页切换
    多个标签页对应不同组件,通过切换标签动态渲染内容。
  2. 条件渲染不同组件
    根据业务逻辑(如用户权限、数据状态)动态选择组件,例如:
    ○ 未登录时显示登录组件,登录后显示内容组件。
    ○ 根据设备类型(PC/移动端)渲染不同UI组件。
  3. 异步加载组件
    结合动态导入(import())实现按需加载,优化首屏性能:
components: {AsyncComponent: () => import('./AsyncComponent.vue')
}

表单步骤向导
多步骤表单流程,每一步骤对应一个子组件,通过动态组件切换步骤。

http://www.ds6.com.cn/news/42702.html

相关文章:

  • 一个手机网站torrentkitty磁力猫
  • 高级室内设计网站国内网络营销公司排名
  • 网站栏目推介怎么做seo优化的主要任务
  • 骑士cms怎么从别的网站采集信息成都网站优化排名
  • 雄安做网站要多少钱今日百度小说排行榜
  • 福州网站建设方案互联网营销策划案
  • wordpress 忘记管理员seo外链工具有用吗
  • 为什么很多网站用php做怎么在平台上做推广
  • 宁波网络公司董事长长沙seo计费管理
  • 江苏建设人才考试网官方网站百度网盟推广
  • 企业可以做哪些网站有哪些内容最打动人心的广告语
  • 自助建站会出现什么问题如何做好一个营销方案
  • 陕西最新消息怎样下载优化大师
  • 想自己搭建网站得怎么做网络营销软件网站
  • 网站seo博客华为手机软文范文300
  • dw做的网站如何让文字换行seo推广是做什么的
  • wordpress代码板插件下载邯郸网站优化公司
  • 网站开发的经济可行性深圳百度推广电话
  • 找生意项目搜狗整站优化
  • mvc5网站开发用户注册应用关键词优化
  • 邯郸哪有做网站的哪里做网络推广好
  • 济南大型网站制作怎样做好竞价推广
  • 怎嘛做网站今日重大新闻头条十条
  • 推广策划公司seo竞争对手分析
  • 有关建筑网站建设方案案例网站建设及推广优化
  • 公司微网站怎么做的查询网官网
  • 如何测试 网站网络营销技巧培训
  • 六年级毕业留言册页面设计模板站长工具seo查询
  • 绵阳市公司网站建设公众号引流推广平台
  • 服装设计参考网站安卓优化大师下载