vue中子组件怎么修改父组件中的css样式的width值

news/2024/9/28 19:26:22 标签: vue.js, css, javascript

在 Vue 中,子组件可以通过事件或使用 Vuex 等状态管理库来修改父组件中的 CSS 样式。以下是两种常见的方法:

方法 1: 通过事件

  1. 父组件:定义一个方法来修改 width,并将该方法传递给子组件。
<template>
  <div>
    <div :style="{ width: widthValue }" class="parent-box">
      这是父组件
    </div>
    <ChildComponent @change-width="updateWidth" />
  </div>
</template>

<script>
import ChildComponent from './ChildComponent.vue';

export default {
  components: { ChildComponent },
  data() {
    return {
      widthValue: '200px',
    };
  },
  methods: {
    updateWidth(newWidth) {
      this.widthValue = newWidth;
    },
  },
};
</script>

<style>
.parent-box {
  background-color: lightblue;
}
</style>
  1. 子组件:触发事件,传递新的宽度值。
<template>
  <button @click="changeWidth">改变父组件宽度</button>
</template>

<script>
export default {
  methods: {
    changeWidth() {
      this.$emit('change-width', '400px');
    },
  },
};
</script>

方法 2: 使用 Vuex(或其他状态管理)

如果应用较复杂,可以使用 Vuex 来管理状态:

  1. Vuex Store:设置一个状态和修改它的 mutation。
javascript">// store.js
export const store = new Vuex.Store({
  state: {
    widthValue: '200px',
  },
  mutations: {
    setWidth(state, newWidth) {
      state.widthValue = newWidth;
    },
  },
});
  1. 父组件:使用 Vuex 的状态。
<template>
  <div>
    <div :style="{ width: $store.state.widthValue }" class="parent-box">
      这是父组件
    </div>
    <ChildComponent />
  </div>
</template>

<style>
.parent-box {
  background-color: lightblue;
}
</style>
  1. 子组件:提交 mutation 修改宽度。
<template>
  <button @click="changeWidth">改变父组件宽度</button>
</template>

<script>
export default {
  methods: {
    changeWidth() {
      this.$store.commit('setWidth', '400px');
    },
  },
};
</script>

总结

  • 使用事件机制是一种简单直接的方法。
  • Vuex 适合处理更复杂的状态管理。

你可以根据需求选择合适的方法!如有疑问,欢迎继续提问。


http://www.niftyadmin.cn/n/5681705.html

相关文章

基于STM32的智能家居交互终端:使用FreeRTOS与MQTT协议的流程设计

一、项目概述 简要介绍项目的目标和用途 随着智能家居的普及&#xff0c;家庭智能交互终端成为提升居住体验的重要设备。本文将介绍一个基于STM32的家庭智能交互终端的设计与实现&#xff0c;该终端能够通过触摸屏、语音识别和传感器数据采集等功能&#xff0c;提供家庭环境监…

leetcode968. 监控二叉树

给定一个二叉树&#xff0c;我们在树的节点上安装摄像头。 节点上的每个摄影头都可以监视其父对象、自身及其直接子对象。 计算监控树的所有节点所需的最小摄像头数量。 示例 1&#xff1a; 输入&#xff1a;[0,0,null,0,0] 输出&#xff1a;1 解释&#xff1a;如图所示&#x…

AI名词扫盲

本篇章主要介绍一些AI研究方向的名词以及解释&#xff0c;后续会持续补充&#xff0c;名词解释与时间顺序无关&#xff0c;欢迎各位大佬们在评论区查漏补缺。 目录 AI&#xff08;Artificial Intelligence&#xff0c;人工智能&#xff09;卷积神经网络&#xff08;CNN&#xf…

全局中断总开关位与各个中断源对应的寄存器使能位开启顺序

在微控制器中&#xff0c;中断总开关通常用来全局性地控制中断的使能和关闭。对于各个中断的位使能&#xff0c;则是用来单独控制每个中断源的使能状态。配置它们的先后关系通常遵循以下步骤&#xff1a; 1.全局中断禁能&#xff1a;首先&#xff0c;需要禁止中断总开关&#x…

.NET MAUI(.NET Multi-platform App UI)下拉选框控件

MAUI下拉选框控件详解&#xff1a; 在开发跨平台应用程序时&#xff0c;下拉选框&#xff08;ComboBox&#xff09;是一个极为常见且实用的控件&#xff0c;它允许用户从一组预定义的选项中选择一个。在.NET MAUI&#xff08;.NET Multi-platform App UI&#xff09;框架中&am…

【Threejs进阶教程-着色器篇】8. Shadertoy如何使用到Threejs-基础版

【Threejs进阶教程-着色器篇】8. Shadertoy如何使用到Threejs - 基础版 前七篇地址,建议按顺序学习致谢带我入门的[X01动力装甲]大佬本文适用范围怎么样在Shadertoy中画出正圆形shadertoy中的坐标系比例转换理解Shadertoy的fragCoord理解Shadertoy中的iResolution 转移Shaderto…

《二十一天》热度狂飙幕后真相原著小说好看还是剧好看

勇于突破&#xff0c;敢于尝试新类型&#xff0c;12集灾难求生/悬疑刑侦网剧《二十一天》&#xff0c;自9月26日爱奇艺迷雾剧场开播以来热度持续攀升。灾难开局、人性探底、悬疑推理&#xff0c;地上地下双线交叉进行的剧情渐入佳境&#xff0c;但网络评论褒贬不一&#xff0c;…

oracle 如何判断当前时间在27号到当月月底

在Oracle中&#xff0c;您可以使用TRUNC和LAST_DAY函数来判断当前时间是否在27号到当月月底之间。以下是一个SQL示例&#xff1a; SELECT CASE WHEN TRUNC(SYSDATE) > TRUNC(SYSDATE, DD) 26 AND TRUNC(SYSDATE) < LAST_DAY(SYSDATE) THEN 当前时间在27号到当月月底之间…