当前位置:首页 > VUE

vue页面公用怎么实现

2026-02-21 15:46:37VUE

Vue 页面公用实现方法

在 Vue 中实现页面公用通常涉及组件化、混入(Mixins)、插槽(Slots)或高阶组件等技术。以下是几种常见方法:

组件化封装

将可复用的 UI 部分提取为独立组件,通过 props 传递数据实现公用。例如创建一个 BaseButton 组件:

<template>
  <button :class="['base-btn', type]">
    <slot></slot>
  </button>
</template>

<script>
export default {
  props: {
    type: {
      type: String,
      default: 'default'
    }
  }
}
</script>

混入(Mixins)

共享逻辑代码的常用方式,适合生命周期钩子或方法的复用。创建 commonMixin.js

export default {
  methods: {
    formatDate(date) {
      return new Date(date).toLocaleString()
    }
  }
}

在组件中引入:

import commonMixin from './commonMixin'
export default {
  mixins: [commonMixin]
}

渲染函数与高阶组件

通过函数式组件实现动态渲染,适合复杂逻辑复用:

const WrapperComponent = {
  functional: true,
  render(h, { props, children }) {
    return h('div', { class: 'wrapper' }, [
      h('header', props.header),
      ...children,
      h('footer', props.footer)
    ])
  }
}

插槽(Slots)复用布局

使用具名插槽创建布局组件:

<template>
  <div class="layout">
    <header>
      <slot name="header"></slot>
    </header>
    <main>
      <slot></slot>
    </main>
  </div>
</template>

使用时:

<Layout>
  <template #header>标题</template>
  主要内容
</Layout>

全局注册公共组件

main.js 中全局注册高频使用组件:

import BaseTable from './components/BaseTable'
Vue.component('BaseTable', BaseTable)

Vuex 状态管理

跨组件共享状态时使用 Vuex:

// store/modules/common.js
export default {
  state: {
    loading: false
  },
  mutations: {
    SET_LOADING(state, payload) {
      state.loading = payload
    }
  }
}

自定义指令复用行为

创建全局指令处理通用 DOM 操作:

Vue.directive('focus', {
  inserted(el) {
    el.focus()
  }
})

注意事项

  • 避免过度使用混入,可能导致命名冲突
  • 组件化时应保持单一职责原则
  • 全局注册组件需谨慎,可能增加包体积
  • 复杂场景可考虑组合式 API(Vue 3)替代混入

vue页面公用怎么实现

标签: 页面vue
分享给朋友:

相关文章

vue computed 实现

vue computed 实现

computed 的基本用法 在 Vue 中,computed 用于声明计算属性,这些属性基于响应式依赖进行缓存。只有当依赖发生变化时,计算属性才会重新计算。 new Vue({ data: {…

vue实现全景

vue实现全景

Vue 实现全景效果的方法 使用 Vue 实现全景效果通常需要结合第三方库或框架,以下是几种常见的方法: 使用 Three.js 和 Vue-Three.js Three.js 是一个强大的 3D…

vue实现$.extend

vue实现$.extend

Vue 实现类似 jQuery 的 $.extend 功能 在 Vue 中实现类似 jQuery 的 $.extend 功能,可以通过多种方式完成。$.extend 主要用于合并多个对象的属性,Vue…

vue实现switch

vue实现switch

Vue 实现 Switch 开关组件 在 Vue 中实现 Switch 开关组件可以通过自定义组件或使用现有 UI 库完成。以下是几种常见实现方式: 自定义 Switch 组件 创建一个基础…

vue实现oauth

vue实现oauth

Vue 实现 OAuth 的步骤 安装必要的依赖 确保项目中安装了 axios 和 vue-router。OAuth 通常需要发送 HTTP 请求和处理路由跳转。 npm install axio…

vue翻页实现

vue翻页实现

Vue翻页实现方法 基础分页组件实现 使用v-for和计算属性实现基础分页逻辑: <template> <div> <ul> <li…