Vue项目中同级组件传值的例子
大家好,今天给大家带来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项目中同级组件传值的例子的更多相关文章
- vue项目中使用组件化开发
最近在使用vue-cli结合webpack打包工具开发一个后台管理系统,使用vue难免需要运用组件化思想,而这也正是vue的一大特点. 在之前做的vue项目中,稍微有一点组件化的思想,可能是对组件化不 ...
- 关于vue项目中使用组件的一些心得
在编写一个可能是共组件的情况下,尽量在组件内部只处理相关组件内部的逻辑,组件外的逻辑通过事件总线emit,否则一旦当前组件涉及其他组件的逻辑就会发生耦合,在一个新的组件里面使用的时候,就会造成后悔的情 ...
- vue父子组件传值加例子
例子:http://element-cn.eleme.io/#/zh-CN/component/form 上进行改的 父传子:用prop:子组件能够改变父组件的值,是共享的,和父操作是 ...
- vue项目引入FastClick组件解决IOS系统下h5页面中的按钮点击延迟,连续点击无反应的问题
异常描述: ios系统手机中访问h5页面,按钮点击有延迟,连续点击卡顿.无反应. 异常原因: 这要追溯至 2007 年初.苹果公司在发布首款 iPhone 前夕,遇到一个问题:当时的网站都是为大屏幕设 ...
- vue项目中设置全局引入scss,使每个组件都可以使用变量
在Vue项目中使用scss,如果写了一套完整的有变量的scss文件.那么就需要全局引入,这样在每个组件中使用. 可以在mian.js全局引入,下面是使用方法. 1: 安装node-sass.sass- ...
- 解决vue项目中遇到父组件的按钮或操作控制重新挂载子组件但是子组件却无效果的情况
在vue项目中终会遇到需要父组件的按钮或操作控制重新挂载子组件的需求,我在新项目中就遇到这种需求.真实场景是父组件的早,中,晚三个按钮(代表三个时间段)来控制子组件的table表格列的动态加载. 子组 ...
- <转载> VUE项目中CSS管理
vue的scoped 在vue项目中,当 .vue文件中 <style> 标签有 *scoped 属性时,它的 CSS 只作用于当前组件中的元素,很好的实现了样式私有化的目的. 使用sco ...
- vue项目中遇到的一些问题
或访问:https://github.com/littleHiuman/experiences-about-vue 欢迎补充! vuex 状态 vue-cli 命令行 vue vue vue-rou ...
- vue项目中使用ts(typescript)入门教程
最近项目需要将原vue项目结合ts的使用进行改造,这个后面应该是中大型项目的发展趋势,看到一篇不错的入门教程,结合它并进行了一点拓展记录之.本文从安装到vue组件编写进行了说明,适合入门. 1.引入T ...
随机推荐
- cgo 和 Go 语言是两码事
cgo不是Go 借用 JWZ的一句话 有些人,当他们面临一个问题时,认为“我知道,我会使用 cgo ”.那么现在,他们有了两个问题. 最近有人在 Gopher 的 Slack Channel 上使用 ...
- JAVA 实现数据导入Phoenix
需要导入的jar 包有: 实现代码: package cn.test; import java.sql.Connection; import java.sql.DriverManager; impor ...
- scala 实现算法
快速排序 def sort(xs: Array[Int]): Array[Int] = if (xs.length <= 1) xs else { val pivot = xs(xs.lengt ...
- scala 基础笔记
view bound:必须传入一个隐式转换函数 class [T <% Ordered [T]] content bound:必须传入一个隐式值 class [T : Ordering] !异步 ...
- Vue之自建管理后台(三)登录页面
在做登录页面之前,我们必须得完成路由的设定... 按照之前的设计我们路由的文件夹是src/router 官方默认的index.js,如下: import Vue from 'vue' import R ...
- CSS3-2d3d
1.过渡(transition)操作谁,给谁加过渡 transition:要过渡的属性 花费时间 运动曲线 何时开始: 多组属性变化,还是用 逗号 隔开 transition ...
- 自记录:git如何上传文档到git@osc
前提: D盘有gitserver文件夹 双击桌面的git.exe文件,打开git命令窗口 输入cd d: 命令进入D盘 输入cd gitserver命令进入 找到git@osc自己参与项目里的htt ...
- Keil5-建立第一个STM32工程
此致:特别感谢作者Lomo-chen所写的文章给我的帮助,我尝试做了一下,成功了,今天整理一下. 一.建立文件夹: 1.在桌面或其他盘建立一个文件夹,此处名称为Test,用来存放工程程序. 2.在Te ...
- 2 java程序入门
1. 第一个java class { public static void main(String[] args) { System.out.println("Hello World!& ...
- dubbo入门之服务消费
今天,我们来看看dubbo消费的执行过程 首先,我们都知道dubbo是一个基于netty实现的RPC框架,底层通信是使用netty来实现的.在学习dubbo的时候,或许我们都会有下面的这些疑惑: 1. ...