美文网首页前端知识
Vue组件间数据传递

Vue组件间数据传递

作者: yimi珊 | 来源:发表于2019-03-19 12:15 被阅读3次

前言

总结vue组件间的数据传递

  1. 路由传参
  2. 父组件传递数据给子组件---props
  3. 子组件传递数据给父组件---$emit
  4. vuex数据管理

路由传参 vue-router官网

params方式

路由文件---router/index.js (此路径参考 使用Vue-cli创建项目及常用配置

{
path: '/user/:id',
name: 'user',
component: resolve => require(['@/pages/user.vue'], resolve),
}
//传参方式
//方法1
this.$router.push({name:'user',params:{'id':this.id}});
//方法2
this.$router.push({path:'/user/1}});
//获取数据方式
console.log(this.$route.params.id)
query方式
//传参方式
this.$router.push({name:'user',query:{'id':this.id}});
//获取数据方式
console.log(this.$route.query.id)

.
.


父组件传递数据给子组件---props

//父组件---传递数据
<template>
    <userTemplate :userData='userData'></userTemplate>
</template>
<script>
    import userTemplate from "@/components/userTemplate .vue";
    export default {
        components:{
            userTemplate 
        },
        data(){
            return {
                userData:{
                    user:'',
                    sel:false
                },
                
            }
        },
    };
</script>
//子组件 userTemplate ---获取数据
export default {
    props: ['userData'],
    data() {
        return {
        };
    },
    mounted(){
        console.log(this.userData)
    }
};

vue不推荐子组件通过props修改父组件的数据哦

.
.


子组件传递数据给父组件---$emit

//子组件---发送请求/数据
this.$emit("showPopup", this.value);
//父组件---接收请求/数据
this.$on("showPopup", function(value) {
   console.log(value);
});

.
.


vuex数据管理 vuex 官网

vuex文件---store/index.js (此路径参考 使用Vue-cli创建项目及常用配置

import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)

export default new Vuex.Store({
    state: {
        index: 0,
    },
    getters: {
        getIndex:state => {
            return state.index
        },
    },
    mutations: {
        setIndex(state, data) {
            state.index= data
        },
    },
    actions: {
        setIndex(conText, data) {
            conText.commit('setIndex', data);
        },
    }
});

修改index的值

import { mapState ,mapGetters,mapActions } from 'vuex'
export default {
data() {
    return {
        idx:0,
    }
},
mounted(){
    //设置/修改 index
    this.$store.dispatch('setIndex',this.idx);//修改数据
    console.log(this.getIndex)//获取数据
},
computed: {
    ...mapGetters([ 'getIndex' ]),
    getIndex(val){
return val
}
},
methods: {
    ...mapActions(['setIndex']),
}

相关文章

  • vue 中几种传值方法

    前言 vue项目中,组件跟组件之间数据的传递是很普遍的行为,在这里总结几种常见的vue组件跟组件之间传值方式,其中...

  • Vue组件间数据的传递

    通过 Prop 向子组件传递数据 通过事件向父组件发送消息

  • vue 组件间数据传递

    1.子组件通知父组件 2.父组件 3.父组件向子组件 传参数

  • Vue组件间数据传递

    前言 总结vue组件间的数据传递 路由传参 父组件传递数据给子组件---props 子组件传递数据给父组件---$...

  • Vuejs组件

    component 组件之间数据传递

  • Vue 2.0 组件间数据传递

    父子组件数据传递 父组件单向传递给子组件 使用v-bind传递 父组件: 子组件: 子组件单向传递给父组件 使用 ...

  • vue父子组件传递数据方法

    标签(空格分隔): vue 父组件向子组件传递数据 Vue中父组件向子组件传递数据用props 举个例子 父组件中...

  • Vue 父子组件的数据传递(一)

    组件之间数据传递 父传子:在父组件通过 v-bind 属性绑定传递 子组件通过props接收父组件传过来的数据 子...

  • vue组件间通信

    vue组件间通信 1.父组件向子组件传递数据--props 在vue2.0中使用props实现向子组件传递数据: ...

  • React & Vue组件间数据传递方式

    React和Vue是两个某些方面的都非常相似的框架,在组件间数据通讯思路也基本相似,下面我主要讲讲二者在父子...

网友评论

    本文标题:Vue组件间数据传递

    本文链接:https://www.haomeiwen.com/subject/abkbmqtx.html