IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> vue中组件传值的方式总结(自己总结 父子 兄弟 组件传值) -> 正文阅读

[JavaScript知识库]vue中组件传值的方式总结(自己总结 父子 兄弟 组件传值)

一.普通的父子组件传值

  1. 父组件传递给子组件

父组件代码:父组件向子组件传递一个值,直接通过绑定属性的方式传递,在子组件上绑定一个属性。 这里绑定了一个那么属性传递值。

<template>
	<view class="content">
		<h2>我是父组件</h2>
		<son :name="name"></son>

	</view>
</template>

<script>
	import son from '@/components/son/son.vue'
	export default {
		comments:{
			son
		},
		data() {
			return {
				name:'张三',
			}
		},
		methods: {
		}
	}
	
</script>

子组件接收父组件传递过来的值:

<template>
	<view class="carcontent">
		<h3>我是子组件</h3>
		<view class="">
			这是父亲传递的值(给我取的名字){{name}}
		</view>

	</view>
</template>
<script>
	export default{
		props:['name'],
		data(){
			return {
				
			}
		},
		onLoad() {
			
		},
		methods:{
		}
	}
</script>

这样子组件就接收到了父组件传递过来的 张三 的name值
在这里插入图片描述
2. 子组件传递给父组件
子组件给父组件传值需要通过自定义事件来传递
子组件代码:

<button @click="sayThank"></button>
methods:{
	sayThank(){
	//this.$emit('自定义事件名称',传递的值)
		this.$emit('thankFather','谢谢父亲')
	}
}

//父组件代码

<son :name="name" @thankFather="getThank($event)"></son>
<view>接收子组件的内容:{{content}}</view>
methods: {
	getThank(e){
		console.log(e)
		this.content=e
	}
}

在这里插入图片描述
当然如果子组件给父组件传值很多。我们可以以对象形式传递过来数据。 传递的参数还是this.$emit(‘自定义事件名称’,传递的值)

二:兄弟组件传值
父组件内同时引入两个平级的组件,这两个组件就是兄弟组件,兄弟组件直接如何进行传值呢?
父组件内的代码:增加引入了brother这个组件

	<view class="content">
		<h2>我是父组件</h2>
		<son :name="name" @thankFather="getThank($event)"></son>
		<view>接收子组件的内容:{{content}}</view>
		
		<brother></brother>
	</view>
<script>
	import son from '@/components/son/son.vue'
	import brother from '@/components/brother/brother.vue'
	export default {
		comments:{
			son,
			brother
		},
		data() {
			return {
				name:'张三',
				content:''
			}
		},
		onLoad() {

		},
		methods: {
			getThank(e){
				console.log(e)
				this.content=e
			}
		}
	}
	
</script>

我们通过vue中的事件总线 $eventBus来进行值的传递
在main.js页面我们直接把事件总线挂载在Vue原型上

Vue.prototype.$EventBus = new Vue()

在son组件内,我们通过按钮事件传递值
重点是通过this.$eventBus来传值

<button @click="sayThank">给父组件传值</button>
method:{
	sayThank(){
		this.$EventBus.$emit('helloBrother','你好,我的兄弟')
	}
}

brother组件内

<script>
	export default{
		mounted() {
			this.$EventBus.$on('helloBrother',(params)=>{
				console.log(params)
				this.content=params
				
			})
		},
		data(){
			return {
				content:''
			}
		},
		methods:{
			getLove(e){
				console.log(e)
			}
		}
	}
</script>

这样,兄弟组件传值就成功了
在这里插入图片描述
另外的传值方式 就是用vuex来进行传值了。vuex我们下一次继续讲。

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-07-17 16:13:50  更:2022-07-17 16:16:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 13:42:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码