当前位置:首页 > VUE

vue 实现穿透

2026-01-13 08:07:42VUE

在 Vue 中,"穿透"通常指样式穿透(Scoped CSS 的穿透)或事件穿透(Event Bubbling)。以下是两种常见场景的实现方法:

样式穿透(Scoped CSS)

在 Vue 单文件组件中,使用 scoped 属性时,样式默认只作用于当前组件。穿透样式可以使用 ::v-deep/deep/(旧版)。

<style scoped>
/* 新版语法 */
::v-deep .child-class {
  color: red;
}

/* 旧版语法(不推荐) */
/deep/ .child-class {
  font-size: 16px;
}
</style>

事件穿透(Event Bubbling)

Vue 默认支持原生 DOM 事件冒泡,但自定义事件需要手动处理。

<template>
  <div @click="handleParentClick">
    <child-component @custom-event="handleChildEvent" />
  </div>
</template>

<script>
export default {
  methods: {
    handleParentClick() {
      console.log('Parent clicked');
    },
    handleChildEvent() {
      console.log('Child event received');
    }
  }
}
</script>

属性穿透(Attribute Inheritance)

props 定义的属性会自动继承到子组件的根元素上。可通过 inheritAttrs: false 禁用,并用 v-bind="$attrs" 手动控制。

<template>
  <child-component v-bind="$attrs" />
</template>

<script>
export default {
  inheritAttrs: false
}
</script>

组件实例穿透(Ref 链)

通过 ref 获取子组件实例实现穿透操作:

<template>
  <child-component ref="child" />
</template>

<script>
export default {
  mounted() {
    this.$refs.child.someMethod();
  }
}
</script>

注意:过度使用穿透可能破坏组件封装性,建议优先通过 props/emit 规范通信。

vue 实现穿透

标签: vue
分享给朋友:

相关文章

vue实现前端分离

vue实现前端分离

Vue 实现前后端分离 前后端分离是一种架构模式,前端负责页面渲染和交互逻辑,后端提供数据接口。Vue.js 作为前端框架,非常适合实现前后端分离的开发模式。 核心实现步骤 创建 Vue 项目 使…

vue实现路由导航

vue实现路由导航

路由导航的实现方式 在Vue中,路由导航主要通过Vue Router实现。Vue Router是Vue.js官方的路由管理器,用于构建单页面应用(SPA)。 基本路由配置 安装Vue Router…

vue实现多个tab

vue实现多个tab

Vue 实现多个 Tab 的方法 使用动态组件切换 在 Vue 中可以通过动态组件 <component :is="currentTab"> 结合 v-for 和 v-bind 实现多个…

vue 页签实现

vue 页签实现

Vue 页签实现方法 在 Vue 中实现页签功能通常涉及动态组件、路由或状态管理。以下是几种常见的实现方式: 使用动态组件 通过 Vue 的 <component> 动态组件结合 v-f…

vue实现打字机

vue实现打字机

Vue实现打字机效果 在Vue中实现打字机效果可以通过动态更新文本内容并添加延迟来实现。以下是几种常见的实现方法: 使用setInterval实现 <template> <di…

vue实现点击页面切换

vue实现点击页面切换

实现点击页面切换功能 在Vue中实现点击页面切换功能,可以通过路由跳转或组件动态渲染两种方式完成。以下是具体实现方法: 使用Vue Router实现页面跳转 安装Vue Router后,在项目中配置…