父子组件传值方法

父子组件传值方法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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • tabnine激活(JetBrains全家桶)「建议收藏」

    (tabnine激活)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html4M7HSKPBXS-eyJsaWN…

    2022年3月29日
    541
  • odrive入门教程(securecrt使用教程串口)

    ODrive官方入门指南中,采用的是USB连接控制模式(中文翻译版本链接)使用的是NativeProtocol。当我们需要尝试串口通信实现时,需要专程ASCII协议来进行串口通信实现相关的命令,结合着入门指南以及ODrive中的相关属性方法参数,将流程中用到的相关方法整理如下:importserialimporttimeted=serial.Serial(port=’/dev/tty.wchusbserial1470′,baudrate=115200)ted.writ

    2022年4月16日
    50
  • 虚拟机安装完linux后怎么使用linux_虚拟机ubuntu安装教程

    虚拟机安装完linux后怎么使用linux_虚拟机ubuntu安装教程本篇文章为本人从零开始学习linux的学习心得,其中包含了部署虚拟环境安装linux系统。其中若有错误之处,请读者积极指出,让本人与读者共同进步。第一章部署虚拟环境安装linux系统及配置网路一、linux简介首先在学习linux系统之前,我觉得应该先了解一下linux的来历和发展历程,会让我们对linux充满好奇心,对后续的学习会有帮助。(搬砖):早在20世纪70年代,…

    2022年10月8日
    0
  • JVM类加载机制详解(一)JVM类加载过程[通俗易懂]

    JVM类加载机制详解(一)JVM类加载过程[通俗易懂]首先Throws(抛出)几个自己学习过程中一直疑惑的问题:1、什么是类加载?类加载的时机?2、什么是类初始化?什么时候进行类初始化?3、什么时候会为变量分配内存?4、什么时候会为变量赋默认初值?什么时候会为变量赋人为设定的初值?5、类加载器是什么?6、如何编写一个自定义的类加载器?首先,在代码编译后,就会生成JVM(Java虚拟机)能够识别的二进制字节流文件(*

    2022年5月23日
    32
  • JVM调优工具总结

    JVM调优工具总结一、jps:虚拟机进程状况工具它可以列出正在运行的虚拟机进程,并显示虚拟机执行主类(MainClass,main()函数所在的类)名称以及正在运行的本地虚拟机唯一ID(LVMID);它是使用率最高的一个JDK命令行工具,因为其他的命令行工具都需要输入查询到的ID来确定要监控的是哪一个虚拟机进程。命令格式:jps[options][hostid]选项作用-q只…

    2022年5月6日
    38
  • 暴力激活成功教程字典及字典生成器[通俗易懂]

    暴力激活成功教程字典及字典生成器[通俗易懂]GitHub上的:https://github.com/danielmiessler/SecLists/tree/master/Passwords/Leaked-Databaseshttps://

    2022年8月4日
    4

发表回复

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

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