父子组件传值方法

父子组件传值方法vue组件间传值方法:ref、子传父、父传子、VueX、bus。

大家好,又见面了,我是你们的朋友全栈君。

一. ref传值

        1. 子组件(<Invitation>)定义一个变量visible
        2 . 父组件使用ref接收

 <Invitation ref="dialog" />

        3. 父组件可修改值(visible是子组件的一个变量)

this.$refs.dialog.visible=true;

二. 父传子

        1. 父组件使用v-bind绑定一个变量variable(v-bind:变量名=”值”)

<Invitation v-bind:visible="dialogVisible" @getData="getdata" />

        2. 子组件用props接收(与created同级)

props: ["visible"]

三. 子传父

        1. 子组件使用this.$emit绑定一个事件和值

this.$emit("getData", this.data1);

        2. 父组件使用@子组件绑定事件=新方法名

<Invitation v-bind:visible="dialogVisible" @getData="getdata" />

        3. 父组件定义新方法名接收值

getdata(val) {
    console.log(val);
},

四. VueX传值

        1. 建立或者使用已有的store文件夹下面的index.js

import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
    state: {
        userid:'',      // 最后获取的变量名
        usertype:'',
    },
    getters: {          // 一般不用
        getinfo(state){
            return state.userid;
        }
    },
    mutations: {        // getUserid就是值来源处定义的方法,id是随便定义的一个变量去接收对应的值
        getUserid(state,id){
            state.userid = id;
        },
    },
    actions: {
    },
    modules: {
    }
})

         2. main.js里面引入store文件夹

// 默认已经引入
import store from './store'
new Vue({
    store,
}).$mount('#app')

         3. 设置变量的值

this.$store.commit("getUserid", this.userid);  
// getUserid表示方法名,在第一步调用;
// this.userid表示需要传递的值

         4. 调用已经设置的值

<script>
    import { mapState } from "vuex";
    export default {
        computed: {
            ...mapState(["userid"]),    // userid是store/index.js的state里面定义的变量名
        },
        created() {
            console.log(111, this.userid);
        },
    };
</script>

五. bus事件总线传值(多用于兄弟组件传值)

        1. main.js中创建一个事件总线

// 建立中转站
let bus = new Vue();
Vue.prototype.bus = bus;

         2. 使用emit绑定一个方法和值

this.bus.$emit("getData", this.data1);

        3. 获取值

this.bus.$on("getData",function(val){
    console.log(val);
})

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/145622.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • composer如何查看已经安装了哪些拓展包(composer 如何使用)

    composer如何查看已经安装了哪些拓展包(composer 如何使用)

    2022年2月14日
    34
  • 会议室预定功能_高校会议室预订系统功能简介

    会议室预定功能_高校会议室预订系统功能简介一、功能介绍这是一个基于前端页面js代码的动态效果和后端对数据库数据更新的操作,主要实现的是会议室的预定功能,当员工进入预定页面后可以看到某天的某个会议室的某个时段是否被预定,当没被预定的情况下,就

    2022年8月3日
    3
  • [Warning] large integer implicitly truncated to unsigned type [-Woverflow][通俗易懂]

    [Warning] large integer implicitly truncated to unsigned type [-Woverflow][通俗易懂][Warning]largeintegerimplicitlytruncatedtounsignedtype[-Woverflow]警告的原因是:整数溢出整数溢出:当整数达到它所能表述的最大值时,会重新从起点开始#include<stdio.h>intmain(void){ unsigneda=12345678910; printf(“a=%d\n”,a); return0;}该程序输出以后并不是输出a=12345678910而是:上面的代码

    2022年7月25日
    7
  • 激光SLAM算法学习(一)——激光SLAM简介

    激光SLAM算法学习(一)——激光SLAM简介激光SLAM算法学习(一)激光SLAM简介1、SLAM是什么2、SLAM的分类3、SLAM的框架4、激光SLAM

    2022年6月16日
    365
  • 图片相似图片搜索_搜图网

    图片相似图片搜索_搜图网十大相似图片搜索网站(以图搜图)  2011-04-1321:07:56|  分类: 默认分类 |  标签:以图搜图  图片搜索  搜图  百度搜图  搜索引擎  |举报|字号 订阅    下载LOFTER客户端  如何凭着一张现有图片找出它的原始图

    2022年9月10日
    0
  • 分布式锁的使用场景_分布式锁的三种实现的对比

    分布式锁的使用场景_分布式锁的三种实现的对比前言对于锁大家肯定不会陌生,比如synchronized关键字和ReentrantLock可重入锁,一般我们用其在多线程环境中控制对资源的并发访问。但是随着业务的发展,分布式的概念逐渐出现在我们系统中,我们在开发的过程中经常需要进行多个系统之间的交互,于是上面的加锁方法就会失去作用。于是在分布式锁就自然而然的诞生了,接下来我们来聊一聊分布式锁实现的几种方式。分布式锁的使用场景 效率性:使用分布式锁可以避免不同节点重复相同的工作。 正确性:分布式锁可以避免破坏正确性的发生,如

    2022年9月8日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号