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

凡科网站怎么做淘宝客全国疫情最新数据

凡科网站怎么做淘宝客,全国疫情最新数据,扬中市住房和城乡建设局网站,四川建设工程网站Vue 高级技巧深度解析 mindmaproot(Vue2高级技巧)组件通信EventBusprovide/inject$attrs/$listeners性能优化虚拟DOM优化函数式组件按需加载状态管理Vuex模块化持久化存储严格模式高级指令自定义指令动态组件异步组件渲染控制作用域插槽渲染函数JSX支持一、组件通信的进阶之道 …

Vue 高级技巧深度解析


在这里插入图片描述

mindmaproot(Vue2高级技巧)组件通信EventBusprovide/inject$attrs/$listeners性能优化虚拟DOM优化函数式组件按需加载状态管理Vuex模块化持久化存储严格模式高级指令自定义指令动态组件异步组件渲染控制作用域插槽渲染函数JSX支持

一、组件通信的进阶之道

1.1 跨层级通信方案对比

props
props
provide
inject
父组件
子组件
孙子组件
EventBus

通信方案性能测试

方法100组件通信耗时内存占用适用场景
Props/Events120ms父子组件直接通信
EventBus85ms任意组件间低频通信
Vuex45ms中大型应用状态管理
provide/inject65ms跨多层级组件通信

1.2 高阶属性传递

// 父组件
<template><child v-bind="$attrs" v-on="$listeners"></child>
</template>// 子组件
export default {inheritAttrs: false,mounted() {console.log(this.$attrs); // 获取非props属性console.log(this.$listeners); // 获取所有监听器}
}

最佳实践

  • 使用inheritAttrs: false避免自动绑定到根元素
  • 结合v-bind="$attrs"实现属性透传
  • 通过$listeners批量处理事件监听

二、性能优化深度策略

2.1 虚拟DOM优化技巧

// 优化前
<template><div><div v-for="item in list" :key="item.id">{{ item.content }}</div></div>
</template>// 优化后:使用函数式组件
Vue.component('functional-list', {functional: true,render(h, context) {return context.props.list.map(item => h('div', { key: item.id }, item.content)}
})

优化效果对比

列表长度普通组件渲染时间函数式组件时间提升幅度
1000120ms45ms62%
5000680ms220ms67%

2.2 按需加载实现

// 路由配置
const routes = [{path: '/dashboard',component: () => import(/* webpackChunkName: "dashboard" */ './views/Dashboard.vue')}
]// 异步组件工厂
Vue.component('async-component', (resolve) => {setTimeout(() => {resolve(import('./components/HeavyComponent.vue'))}, 1000)
})

性能提升数据

优化项首屏体积加载时间内存占用
全量打包2.8MB3.2s150MB
按需加载1.1MB1.4s80MB

三、Vuex 高级应用模式

3.1 模块化状态设计

// store/modules/user.js
export default {namespaced: true,state: () => ({profile: null}),mutations: {SET_PROFILE(state, payload) {state.profile = payload}},actions: {async fetchProfile({ commit }) {const res = await api.getProfile()commit('SET_PROFILE', res.data)}}
}// 组件中调用
this.$store.dispatch('user/fetchProfile')

3.2 持久化存储方案

// 使用vuex-persistedstate
import createPersistedState from 'vuex-persistedstate'export default new Vuex.Store({plugins: [createPersistedState({key: 'vuex_storage',paths: ['user.profile'],storage: window.sessionStorage})],modules: {user}
})

存储方案对比

方案容量限制安全性生命周期
localStorage5MB永久
sessionStorage5MB会话期间
Cookie4KB可设置过期时间
IndexedDB250MB+永久

四、自定义指令与渲染控制

4.1 权限控制指令实现

// 注册全局指令
Vue.directive('permission', {inserted(el, binding) {const { value } = bindingconst permissions = store.state.user.permissionsif (!permissions.includes(value)) {el.parentNode && el.parentNode.removeChild(el)}}
})// 使用示例
<button v-permission="'delete'">删除</button>

4.2 渲染函数与JSX

// 普通模板
<template><div :class="wrapperClass"><slot name="header"></slot><ul><li v-for="item in items">{{ item }}</li></ul></div>
</template>// 等价渲染函数
export default {render(h) {return h('div', {class: this.wrapperClass}, [this.$scopedSlots.header(),h('ul', this.items.map(item => h('li', item)))])}
}// JSX写法
export default {render() {return (<div class={this.wrapperClass}>{this.$scopedSlots.header()}<ul>{this.items.map(item => <li>{item}</li>)}</ul></div>)}
}

五、项目最佳实践

5.1 错误监控集成

// 全局错误处理
Vue.config.errorHandler = (err, vm, info) => {console.error(`Error: ${err.toString()}\nInfo: ${info}`)Sentry.captureException(err)
}// 异步错误捕获
window.addEventListener('unhandledrejection', event => {event.preventDefault()console.error('Unhandled promise rejection:', event.reason)
})

5.2 性能监控方案

// 使用Performance API
const perfData = {dns: performance.timing.domainLookupEnd - performance.timing.domainLookupStart,tcp: performance.timing.connectEnd - performance.timing.connectStart,ttfb: performance.timing.responseStart - performance.timing.requestStart,domReady: performance.timing.domContentLoadedEventEnd - performance.timing.navigationStart
}// 发送监控数据
axios.post('/perf-log', perfData)

关键性能指标

指标优秀值可接受值需优化值
DNS查询<50ms<100ms>200ms
TCP连接<100ms<300ms>500ms
首字节(TTFB)<200ms<500ms>1s
可交互时间<2s<3s>5s

http://www.cadmedia.cn/news/6835.html

相关文章:

  • 西宁网站建设王道下拉惠优秀网页设计作品
  • 商城网站建设自助建站平台河北seo网络优化培训
  • 外贸网站建站k市场营销案例分析
  • 网站界面设计psseo网站推广多少钱
  • 网站建设做到哪些内容南京seo外包平台
  • 苏州在线网站制作深圳优化网站方法
  • 网站建设基本话术2023年新闻小学生摘抄
  • h5网页设计企业seo顾问服务
  • 政府门户网站的建设方案seo网站查询
  • 网站建设大数据服务案例网络推广价格
  • 宁德网站制作公司百度关键词收录
  • 展示网站多少钱一个客服系统网页源码2022免费
  • 手表网站建设策划如何实施网站推广
  • 深圳网站建设最专业的360建站系统
  • 网站视频弹窗代码网络广告推广
  • 黑彩网站建设seo顾问什么职位
  • 晋城网站建设泉州百度网站推广
  • 青浦建设机械网站seo课程培训中心
  • 泰安哪个做网站百度快速收录
  • 开发网站申请青岛疫情最新情况
  • 刘洋网站建设 够完美360开户推广
  • 海尔网站的建设特点seo基础课程
  • 湖南省博物馆网站建设怎么看百度指数
  • 重庆招聘网站建设seopeixun
  • 哪个网站买东西最便宜广州今日头条新闻最新
  • 免费设计商标的网站网站优化排名工具
  • 织梦网站建设选项卡教程今日油价最新
  • 工程建设云网站关键词挖掘排名
  • 济宁梵盛科技网站建设网络服务器图片
  • 国外景观设计网站全世界足球排名国家