大家好,今天给大家带来Vue项目中同级组件之间传值的例子,父子组件之间的通信比较简单,这里不做讨论。

假设该项目中的需求如下:

      图中左上角有一个按钮,我们的需求是点击它时,侧边导航栏收缩且主界面放大,如下图所示

因为vue项目是组件化的,那么就有组件之间传值的需求了,下面是具体的编码操作:

1. 首先在项目的src路径下创建一个js文件,这里命名为byval.js,在该文件中写入如下代码:

/*jslint esversion:6 */
import Vue from 'vue';
export default new Vue();

2. 在头部组件中(包含点击收缩导航栏按钮)需要传递当前是否收缩侧边导航栏的信息给侧边导航栏和主界面两个组件,所以在头部文件写入如下代码:

import New from "./new.js";

export default {
data: function() {
return {
isToggle: false,
// isToggle 是判断是否收缩导航栏的变量,默认为true表示收缩
};
},
methods: {
// onToggle是处理按钮点击事件的函数
onToggle: function() {
// 当点击时,切换当前状态
this.isToggle = !this.isToggle;
// 触发 on-toggle-nav 事件并返回当前导航栏的收缩状态变量
New.$emit("on-toggle-nav", this.isToggle);
}
}
};

3. 在侧边导航栏组件中,需要接受头部导航栏传递过来的变量,判断当前是否收缩导航栏,所以在侧边导航栏组件中写入如下代码

export default {
data:{
toggle:false,
}
,created(){
// 绑定on-toggle-nav事件,并在事件触发时,接受头部组件中传来的值
New.$on("on-toggle-nav", data => {
// 根据头部中传来的值更新当前组件中对应的变量
if (data === false) {
this.toggle = true;
} else {
this.toggle = false;
}
});
}
};

4. 在主界面中组件中,需要接受头部导航栏中传递过来的变量,判断当前是否最大化主界面,代码逻辑和侧边导航栏组件中的是一致的所以不在此赘述。

好了,vue项目中同级组件互相传值的过程就是这样啦,谢谢大家的阅读

Vue项目中同级组件传值的例子的更多相关文章

  1. vue项目中使用组件化开发

    最近在使用vue-cli结合webpack打包工具开发一个后台管理系统,使用vue难免需要运用组件化思想,而这也正是vue的一大特点. 在之前做的vue项目中,稍微有一点组件化的思想,可能是对组件化不 ...

  2. 关于vue项目中使用组件的一些心得

    在编写一个可能是共组件的情况下,尽量在组件内部只处理相关组件内部的逻辑,组件外的逻辑通过事件总线emit,否则一旦当前组件涉及其他组件的逻辑就会发生耦合,在一个新的组件里面使用的时候,就会造成后悔的情 ...

  3. vue父子组件传值加例子

    例子:http://element-cn.eleme.io/#/zh-CN/component/form         上进行改的 父传子:用prop:子组件能够改变父组件的值,是共享的,和父操作是 ...

  4. vue项目引入FastClick组件解决IOS系统下h5页面中的按钮点击延迟,连续点击无反应的问题

    异常描述: ios系统手机中访问h5页面,按钮点击有延迟,连续点击卡顿.无反应. 异常原因: 这要追溯至 2007 年初.苹果公司在发布首款 iPhone 前夕,遇到一个问题:当时的网站都是为大屏幕设 ...

  5. vue项目中设置全局引入scss,使每个组件都可以使用变量

    在Vue项目中使用scss,如果写了一套完整的有变量的scss文件.那么就需要全局引入,这样在每个组件中使用. 可以在mian.js全局引入,下面是使用方法. 1: 安装node-sass.sass- ...

  6. 解决vue项目中遇到父组件的按钮或操作控制重新挂载子组件但是子组件却无效果的情况

    在vue项目中终会遇到需要父组件的按钮或操作控制重新挂载子组件的需求,我在新项目中就遇到这种需求.真实场景是父组件的早,中,晚三个按钮(代表三个时间段)来控制子组件的table表格列的动态加载. 子组 ...

  7. <转载> VUE项目中CSS管理

    vue的scoped 在vue项目中,当 .vue文件中 <style> 标签有 *scoped 属性时,它的 CSS 只作用于当前组件中的元素,很好的实现了样式私有化的目的. 使用sco ...

  8. vue项目中遇到的一些问题

    或访问:https://github.com/littleHiuman/experiences-about-vue  欢迎补充! vuex 状态 vue-cli 命令行 vue vue vue-rou ...

  9. vue项目中使用ts(typescript)入门教程

    最近项目需要将原vue项目结合ts的使用进行改造,这个后面应该是中大型项目的发展趋势,看到一篇不错的入门教程,结合它并进行了一点拓展记录之.本文从安装到vue组件编写进行了说明,适合入门. 1.引入T ...

随机推荐

  1. 51nod-1515 明辨是非——并查集

    给n组操作,每组操作形式为x y p. 当p为1时,如果第x变量和第y个变量可以相等,则输出YES,并限制他们相等:否则输出NO,并忽略此次操作. 当p为0时,如果第x变量和第y个变量可以不相等,则输 ...

  2. 基于VMWare配置VxWorks开发环境

    常规VxWorks的开发环境都是基于目标开发板或目标机来构建的,但并非所有人都具备这样的条件,所以本文主要介绍如何基于vmware来构建VxWorks开发环境.   Step 1. 安装vmware ...

  3. 火狐RESTClient和HttpRequester, Chrome的Postman使用详解

    Chrome下有著名的Postman,那火狐也有它的左膀右臂,那就是RESTClient和HttpRequester.这两款工具都是火狐的插件,主要用来模拟发送HTTP请求,HTTP请求最常用的两种方 ...

  4. Vi/Vim查找,替换,统计使用方法

    Vi/Vim查找替换使用方法 vi/vim 中可以使用 :s 命令来替换字符串.该命令有很多种不同细节使用方法,可以实现复杂的功能,记录几种在此,方便以后查询. 可以使用 # 作为分隔符,此时中间出现 ...

  5. Mentor_丝印检查——手工绘制丝印线条(标注)到丝印位号距离的检查

    http://www.eda365.com/thread-193942-1-1.html 在此之前丝印的检查基本是停留在丝印与阻焊的距离检查,而器件丝印框和手工绘制的线条与器件位号的检查都不到位,据我 ...

  6. C++公有继承、私有继承以及友元

    公有继承: 基类的成员在派生类中维持原来的访问权限,基类的publice成员为派生类的public成员,基类的protected成员为派生类的protected成员,基类的private成员在派生类的 ...

  7. Mysql 命令行下建立存储过程

    建立存储过程的sql如下: CREATE PROCEDURE  proc_variable () BEGIN DECLARE dec_var_ VARCHAR(100); DECLARE rep_nu ...

  8. 并发新构件之Semaphore:信号量

    Semaphore :JDK描述,通常用于限制可以访问某些资源(物理或逻辑的)的线程数目.一句话说明了他的作用.信号量有一个虚拟的许可证池,new Semaphore(10):构造一个含有10个许可证 ...

  9. 转: Meshlab简介

    本文翻译自Meshlab主页:http://www.meshlab.net/ MeshLab是用于处理和编辑3D三角形网格的开源系统.它提供了一组用于编辑,清理,修复,检查,渲染,纹理和转换网格的工具 ...

  10. 安装Hama的基本过程