vue组件传值、通信

news/2024/7/5 21:15:13 标签: vue, 触发器, 概率论, 网络通信, unity

vue组件传值、通信

父组件--------》子组件

属性

vue">// parent
<HelloWorld msg="Welcome to Your Vue.js App"/>

// child
props: { msg: String }

引用refs

vue">// parent
<HelloWorld ref="hw"/>

修改子组件的值
this.$refs.hw.xx = 'xxx'

子组件chidren

vue">// parent 
this.$children[0].xx = 'xxx'

子组件---->父组件

自定义事件

vue">// parent
<Cart @add="cartAdd($event)"></Cart>

// Cart.vue 
this.$emit('add', good)

兄弟组件

通过共同的父辈

vue">// brother1 
	this.$parent.$on('foo', handle)
// brother2 
	this.$parent.$emit('foo')

祖先和后代之间

// ancestor 
provide() {
 return {foo: 'foo'}
}
// descendant 
inject: ['foo']

任意两个组件之间:事件总线或vuex

// Bus:事件派发、监听和回调管理class Bus{
constructor(){
// {
//	eventName1:[fn1,fn2],
//	eventName2:[fn3,fn4],
// } this.callbacks = {}
}
$on(name, fn){
    this.callbacks[name] = this.callbacks[name] || [] 	  this.callbacks[name].push(fn)
}
$emit(name, args){ if(this.callbacks[name]){
    this.callbacks[name].forEach(cb => cb(args))
}
}
}

// main.js
Vue.prototype.$bus = new Bus()

// child1 this.$bus.$on('foo', handle)
// child2 this.$bus.$emit('foo')

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

相关文章

CSS_浏览器兼容常见BUG

一、概述 CSS Bug: CSS样式在各浏览器中解析不一致的情况&#xff0c;或者说CSS样式在浏览器中不能正确显示的问题称为CSS bug.CSS Hack: CSS中&#xff0c;Hack是指一种兼容CSS在不同浏览器中正确显示的技巧方法&#xff0c;因为它们都属于个人对CSS代码的非官方的修改&#…

vue手写el-form组件

index.vue <template><div><s-form :model"model" :rules"rules" ref"loginForm"><s-form-item label"用户名" prop"username"><s-input v-model"model.username"></s-input>…

【JS】正则表达式

文章目录正则创建正则表达式字面量创建构造函数创建正则表达式里面的符号元字符限定符边界符特殊符号标示符正则表达式的方法testexec字符串的方法searchmatchreplace正则 正则表达式&#xff0c;有名“规则表达式”由我们自己书写“规则”&#xff0c;专门用来检测字符串是否…

js 给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果

给你一个 32 位的有符号整数 x &#xff0c;返回将 x 中的数字部分反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] &#xff0c;就返回 0。 假设环境不允许存储 64 位整数(有符号或无符号)。 var reverse function(x) {var t x.toString().s…

【JS】JSON 方法使用

文章目录小案例JSON.parse()reviver 函数JSON.stringify()replacer 参数space 参数小案例 修改属性名 let obj {a1:a1, a2: "a22", a3: "a1"}; JSON.parse(JSON.stringify(obj).replace(/a1/g,"aa")); // 不会改变原对象 console.log(obj); /…

dom 相同父节点查找

描述 查找两个节点的最近的一个共同父节点&#xff0c;可以包括节点自身 输入描述&#xff1a; oNode1 和 oNode2 在同一文档中&#xff0c;且不会为相同的节点 function commonParentNode(oNode1, oNode2) {let parent1 oNode1.parentNode;let parent2 oNode2.parentNode;if…

ios解决大转盘层级以及闪烁bug

ios中大转盘层级问题 1、z-index不生效 使用transform: translateZ(自定义数字)代替z-index 注意&#xff1a;要加单位&#xff0c; 2、translateZ可能会使其他元素闪烁&#xff08;比如打开弹层的时候&#xff0c;大转盘会闪烁&#xff09; 可在整个大转盘的父级添加translat…

【ES6】模板字符串

文章目录模板字符串1. 使用方法2. 嵌入变量模板字符串 ES5 中我们表示字符串的时候使用或者""在 ES6 中&#xff0c;我们还有一个东西可以表示字符串&#xff0c;就是(反引号) let str hello world; console.log(typeof str) //string1. 使用方法 模板字符串可以…