当前位置:首页 > 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()
    }
  }
}

在组件中引入:

vue页面公用怎么实现

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>

使用时:

vue页面公用怎么实现

<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实现页面截屏

使用html2canvas库实现截屏 html2canvas是一个流行的JavaScript库,可以将DOM元素转换为Canvas图像。在Vue项目中安装html2canvas: npm insta…

vue穿梭框组件实现

vue穿梭框组件实现

实现基础穿梭框组件 在Vue中实现穿梭框组件,可以使用<el-transfer>(Element UI)或手动实现。以下是手动实现的核心逻辑: <template> &l…

vue实现遮罩

vue实现遮罩

Vue 实现遮罩层的方法 在 Vue 中实现遮罩层可以通过多种方式完成,以下是几种常见的方法: 方法一:使用 v-show 或 v-if 控制显示 通过 Vue 的指令动态控制遮罩层的显示与隐藏。…

vue实现返回

vue实现返回

返回按钮功能实现 在Vue中实现返回功能通常有两种方式:使用浏览器历史记录的history.back()或结合Vue Router进行编程式导航。以下是具体实现方法: 使用浏览器API metho…

vue实现全屏

vue实现全屏

Vue 实现全屏功能的方法 在 Vue 中实现全屏功能可以通过浏览器提供的 Fullscreen API 来实现。以下是几种常见的实现方式: 使用原生 Fullscreen API 通过调用 doc…

vue实现单词逆转

vue实现单词逆转

实现单词逆转的方法 在Vue中实现单词逆转可以通过多种方式完成,以下是几种常见的方法: 使用计算属性逆转单词 计算属性是Vue中处理数据逻辑的理想选择。可以通过计算属性来实现单词逆转: &…