vue组件间传递参数的几种方式(vue组件之间传递数据)
toqiye 2024-10-01 22:59 1 浏览 0 评论
组件间传递参数的几种方式
父组件向子组件传递
// 父组件 <template> <center-template :form='userinfo'></center-template> </template> <script> import CenterTemplate from '../../components/admin/userCenterTemplate' export default { components: { 'center-template': CenterTemplate }, data () { return { userinfo: {name: 'jack'} } }, } </script> // 子组件 export default { props: { // 接收 form: { type: Object, default: { name: '', } } }, }
子元素调用父元素的方法
- 直接在子元素中调用父元素的方法
// 子元素 <el-input @input="changeInput" class="search-input" v-model="serachValue" placeholder="请输入搜索内容"></el-input> changeInput(){ // 子元素调用父元素的方法1 if(this.$parent.nullSerarchResult){ // 新增标签 this.$parent.nullSerarchResult() } }, // 父元素 <v-search></v-search> nullSerarchResult(val){ this.pageNum = 1 this.init({ searchKey: val }) },
- 在子元素中使用$emit调用父元素的方法
// 子元素 <el-button @click="addNewFun" size='small' class="search-btn" type="primary">新增</el-button> addNewFun(){ // 第三种方式是发布给父元素 this.$emit('addTagFun') } // 父元素 <v-search @addTagFun='addTagFun' ></v-search> addTagFun(){ this.$router.push('/admin/add_blog') },
- 在子元素中绑定父元素的方法名
// 子元素 <el-button @click="searchResultChild" size='small' class="search-btn" type="primary">搜索</el-button> props: { searchResult: { type: Function, default: null } }, searchResultChild(){ // 调用方法2,这种需要再props中声明 if(this.searchResult){ this.searchResult(this.serachValue) } }, // 父元素 <v-search :searchResult='searchResult' ></v-search> searchResult(val){ this.pageNum = 1 this.init({ searchKey: val }) },
- 使用event bus来实现组件间的通讯
// common/bus.js import Vue from 'vue'; // 使用 Event Bus const bus = new Vue(); export default bus; // 组件1(接收通知信号) import bus from '@/common/bus.js' export default{ data(){ return { collapseData: '' } }, created() { // 监听collapse,有变动就会收到通知,并改变collapseData值 bus.$on('collapse', msg => { this.collapseData = msg }) } } // 组件2 发布信号 import bus from '@/common/bus.js' export default { methods: { sendData(){ // 发布信号,触发这个函数,其他的接收函数都会收到相应的信息 bus.$emit('collapse', '信息') } } }
还有一种就是借用vuex传递信息
// store/index.js import Vue from 'vue' import Vuex from 'vuex'; Vue.use(Vuex) const store = new Vuex.Store({ state: { userinfo: {}, }, mutations: { 'SET_ROLES':(state,userinfo) => { state.userinfo = userinfo }, }, actions: { getUser({commit, state},userinfo){ commit('SET_ROLES',userinfo) }, } }) export default store // views/slider.vue import { mapState, mapAcions } from 'vuex' export default{ computed: { // 解构赋值 ...mapState({ userinfo: state => state.userinfo }) }, methods: { ...mapActions({ getUser: 'getUser' }), handleUserInfo(){ // 调用 this.$store.dispatch('getUser','对象') } } }
相关推荐
- 完美解决MAC电脑空间不足问题(完美解决mac电脑空间不足问题的办法)
-
很多用MAC(苹果笔记本)电脑的人,特别是做iOS开发的,都会遇到一个头疼的问题,那就是电脑磁盘空间不足的问题。这个问题也困扰了我好久,我的开发机是256G的SSD(固态硬盘),但是用着用着就会空间不...
- 系统清理软件Omni Remover for Mac版
-
内容介绍你是否需要一款可以帮你清理Mac系统顽固垃圾的工具呢?试试OmniRemoverforMac吧!OmniRemoverMac版是一款运行在Mac平台上的系统清理软件。OmniRem...
- mac上一款好用的多功能系统清理软件Omni Remover for Mac
-
mac上一款好用的多功能系统清理软件——OmniRemoverforMac。OmniRemovermac破解版是Mac平台上的一款软件清理工具。OmniRemoverMac版专为优化内存...
- 清理重建mac OS图标缓存(mac系统清空)
-
关于macos缓存问题你了解多少?今天macdown小编带大家了解下有关Mac清除图标缓存的相关知识!你知道吗?为了提升图形界面加载速度,默认情况下macOS针对Finder和Dock中的...
- iOS 9 人机界面指南(五):图标与图形设计
-
来人人都是产品经理【起点学院】,BAT实战派产品总监手把手系统带你学产品、学运营。文章索引5.1图标与图像尺寸(IconandImageSizes)5.2应用图标(AppIcon)5.2....
- 你中招了吗?盘古团队发布XcodeGhost病毒检测应用
-
最近大批知名iOS应用被感染XcodeGhost病毒事件闹得沸沸扬扬,虽然该病毒作者发表声明称,XcodeGhost源于自己的实验,没有任何威胁性行为,同时公开了源代码。但依然无法消除众多用户的担忧,...
- iOS应用感染Xcode真是无恶意实验?感染APP最新名单及版本号
-
前瞻科技快讯9月19日消息,一向号称是最安全的iOS真的不安全了?对于这两天闹得沸沸扬扬的多款iOS应用感染XcodeGhost病毒事件,今日凌晨4点左右,网友@XcodeGhost-Author在微...
- 苹果应用签名失败怎么处理(ios应用签名什么意思)
-
在移动应用开发过程中,苹果应用签名失败是一种常见的问题,它可能由多种原因引起。本文将介绍一些处理苹果应用签名失败的方法,帮助开发者解决这个问题。检查证书和描述文件:首先,开发者应该检查使用的证书和描述...
- 好用的系统扫描和清理工具推荐:OS Cleaner Pro for Mac
-
为大家推荐一款全面的系统扫描和清理工具,OSCleanerProforMac...
- 系统清理软件 Omni Remover for Mac
-
你是否需要一款可以帮你清理Mac系统顽固垃圾的工具呢?试试OmniRemoverforMac吧!OmniRemoverMac版是一款运行在Mac平台上的系统清理软件。OmniRemover...
- 优秀的Mac系统清理软件(mac清理系统占用空间)
-
OmniRemoverforMac是一款优秀的系统清理软件,功能有清洁卸载膨胀且顽固的应用程序,在macOSCatalina上清除32位不兼容的应用程序,iTunes,Xcode和Sketc...
- 苹果app安卓apk应用内用微信登录游戏时会显示登录失败怎么解决?
-
解决苹果iOS应用和安卓APK应用在使用微信授权登录时出现“登录失败,签名不一致”的问题,可以按照以下步骤进行排查和解决:1.核实AppID和AppSecret:确保iOS和安卓项目中使用的微信开放...
- Cleaner for Xcode(遗留废弃文件清理工具)
-
Mac上的Xcode总是占用很大空间,并且用的时间越久越大!可通过删除不需要的和不建议使用的文件来帮助您加快Xcode的运行速度,你可以每月或者每周运行一次进行清理。有需要的朋友,赶快来下载吧~Cle...
- Cleaner for Xcode mac(xcode清理工具)
-
Xcode文件太多,如何检测清理?试试CleanerforⅩcode吧!CleanerforXcodeforMac可以检测您的Xcode占用磁盘的情况,统计各个部件所占用的空间。并帮助您...
- 柠檬清理一款Mac设备必备的实用工具
-
简介柠檬清理是针对macOS系统专属制定的清理工具。主要功能包括重复文件和相似照片的识别、软件的定制化垃圾扫描、可视化的全盘空间分析、内存释放、浏览器隐私清理以及设备实时状态的监控等。重点聚焦清理功能...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- 完美解决MAC电脑空间不足问题(完美解决mac电脑空间不足问题的办法)
- 系统清理软件Omni Remover for Mac版
- mac上一款好用的多功能系统清理软件Omni Remover for Mac
- 清理重建mac OS图标缓存(mac系统清空)
- iOS 9 人机界面指南(五):图标与图形设计
- 你中招了吗?盘古团队发布XcodeGhost病毒检测应用
- iOS应用感染Xcode真是无恶意实验?感染APP最新名单及版本号
- 苹果应用签名失败怎么处理(ios应用签名什么意思)
- 好用的系统扫描和清理工具推荐:OS Cleaner Pro for Mac
- 系统清理软件 Omni Remover for Mac
- 标签列表
-
- systemproperties (65)
- show-overflow-tooltip (53)
- canvas图片 (57)
- npm版本管理 (61)
- localhost:15672 (59)
- materialtheme (86)
- node-ssh (68)
- 全局路由守卫 (57)
- springbootcachemanager (57)
- 图床搭建 (62)
- vue3addeventlistener (60)
- mybatisselectone (78)
- css圆形进度条 (69)
- androidble蓝牙开发 (62)
- vue-router的实现原理 (53)
- usememo (53)
- log4j.xml (54)
- maven跳过测试打包 (57)
- npmjsencrypt (55)
- android-gif-drawable (60)
- appender-ref (64)
- springbootmockito (68)
- css边框渐变色和圆角 (58)
- gsonfastjson (59)
- 依赖注入的方式 (62)