基于VUE的跨组件处理侧边栏收缩问题

通过这个问题可以衍生到其他组件的通信问题

背景:一个侧边栏组件 aside.vue 和一个包含头部的组件 index.vue,在index中有用来控制aside的收缩与展开。

声明:所有组件均为Element UI 组件

一、学习过程描述

1、 通过查询element的官网可以知道控制侧边栏收缩的属性为Collapse,为其设置Boolean值即可控制其收缩与展开,默认false为展开。

2、 在对应的<el-menu>组件添加属性collapse并动态绑定isCollapse;

3、 在data中为isCollapse设置布尔值

4、调整侧边栏的宽度,将侧边栏宽度设置为auto

注意: element对侧边栏模板有一个默认的宽度300px,因此不可简单的把设置宽度的代码删除。

5、 因为需要跨组件,则在aside.vue为prop设置下面的代码

prop: ['is-collapse']
// isCollapse 在prop的数组定义中需要把有驼峰的地方分开,并且所有字母小写

6、 转到index.vue中,把之前设置的isCollapse剪切到index的data中,并在app-aside组件绑定该值,像下面那样:

<!-- <AppAsider /> 用大写的也可,用小写的也可,用小写的就要注意在后面的大写子目前加上短杠-->
<app-asider
  class="aside-menu"
  :isCollapse="isCollapse"
  />

到这里,父组件的iscollapse就可以控制侧边栏的收缩了

7、 为控制它的组件添加点击事件或者其他事件用来改变侧边栏,像下面这样

<i
  :class="{
    'el-icon-s-fold':!isCollapse,
    'el-icon-s-unfold':isCollapse
    }"
  @click="isCollapse = !isCollapse"></i>

这里的class我我也顺便进行了动态绑定,用来改变图标以提示用户。

到这里跨组件进行控制的代码已经完成

二、总结

实现 组件1 对 组件2 的控制,可以在组件1中定义一个参数,然后把参数传递给组件2,组件2使用prop接收参数(这里使用的是数组的方法,需要注意“驼峰写法”到“短杠+小写”的转换),哪个DOM节点需要则使用即可。

 

 

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你想了解如何实现一个画布侧边栏Vue 组件,是吗?那我可以给你一些思路和建议。 首先,你需要确定侧边栏的功能和布局。画布侧边栏通常用于放置一些工具、选项和设置,以便用户可以轻松地对画布进行操作和调整。因此,你需要考虑以下几个方面: 1. 侧边栏的宽度和位置:通常侧边栏会位于画布的左侧或右侧,并且需要有一个合适的宽度,以便用户可以看到所有的内容。 2. 侧边栏的内容:你需要确定侧边栏需要包含哪些组件,比如按钮、输入框、下拉框等等。这些组件需要按照一定的布局方式进行排列,以便用户可以快速找到并使用。 3. 交互和响应:侧边栏需要响应用户的操作,比如点击按钮、输入文本等等。你需要为每个组件添加对应的事件处理程序,并确保侧边栏的状态和画布的状态能够同步更新。 接下来,你可以开始编写侧边栏组件的代码了。以下是一些建议: 1. 使用 Vue组件化开发:将侧边栏拆分为多个子组件,每个组件负责一个特定的功能或布局。 2. 使用 Vuex 管理状态:将侧边栏的状态存储在 Vuex 中,以便多个组件之间可以共享和修改状态。 3. 使用插槽和作用域插槽:使用插槽可以使侧边栏更具有灵活性,可以根据需要插入不同的内容。使用作用域插槽可以将父组件的数据传递给子组件,以便子组件可以自行渲染内容。 4. 使用 CSS 样式:侧边栏的样式需要根据实际需要进行调整,你可以使用 CSS 样式来设置侧边栏的外观和布局。 最后,你可以在 Vue 应用程序中使用你的侧边栏组件了。将组件添加到应用程序的模板中,并设置需要的属性和事件处理程序即可。希望这些建议能够帮助你编写出一个功能丰富、易于使用的画布侧边栏 Vue 组件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值