vue-cli常用传参方式

Posted jing-zhe

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue-cli常用传参方式相关的知识,希望对你有一定的参考价值。

文章内容:vue中父子组件传参、哒哒哒还没写完

一、父子组件

1.1父传子(props)

<!-- 父组件father.vue -->
<template>
  <div>
    <div>这里是father组件</div>
    <div>这是父组件要传给子组件的参数:msg</div>
    <!-- 1.传递:data1为动态参数msg的参数名,名字自定义,与子组件接收参数名同名
    data2为静态参数的参数名,名字自定义,与子组件接收参数名同名 -->
    <child :data1="msg" data2="777"></child>
  </div>
</template>
<script>
  import child from "./child";
  export default 
      data() 
          return 
              msg:"666"
          
      ,
    components: 
      child
    
  ;
</script>
<style scoped></style>
<!-- 子组件child.vue -->
<template>
  <div>
    <div>这里是child组件</div>
    <!-- 3.使用:这里就是接收的父组件参数 -->
    <div>接受的父组件动态参数: data1 </div>
    <div>接受的父组件静态参数: data2 </div>
    <div>接受的父组件参数: data </div>
  </div>
</template>
<script>
  export default 
    // 2.接收:props接收父组件参数,data1与data2为传递参数的参数名,与父组件内同名
    props: ["data1", "data2"],
    data() 
      return 
        data: "默认值"
      ;
    ,
    // 3.使用:直接用this调用
    mounted() 
      this.data = this.data1;
    
  ;
</script>
<style scoped></style>

 

页面数据效果如下

技术图片

 

这里要稍微注意一下,父组件所传递参数如果是需要在生命周期中获取赋值,就不能绑定在mounted中,否则子组件方法中this调用不会成功。生命周期顺序:父beforeMount->子beforeCreate……子mounted->父mounted

1.2子传父($emit)

<!-- 子组件child.vue -->
<template>
  <div>
    <div>这里是child组件</div>
    <!-- 这里就是接收的父组件参数 -->
    <input type="button" value="点击向父组件传参" @click="toFather">
  </div>
</template>
<script>
  export default 
    data()
      return
        cmsg:我是子组件的参数
      
    ,
    methods: 
      toFather()
        // 1.子组件触发父组件方法
        // $emit第一个参数为所要触发的父组件函数,函数名可自定义但要与父组件中对应函数名同名
        // $emit第二个参数就是子组件向父组件传递的参数
        this.$emit(receive,this.cmsg);
      
    ,
  ;
</script>
<style scoped></style>
<!-- father.vue -->
<template>
  <div>
    <div>这里是father组件</div>
    <div>接收子组件参数:fmsg</div>
    <!-- 2.在对应子组件上绑定函数,这里“receive”是函数名,可自定义但要与子组件触发函数同名 -->
    <child @receive="fromChild"></child>
  </div>
</template>
<script>
  import child from "./child";
  export default 
    data() 
      return 
        fmsg:‘‘
      ;
    ,
    methods: 
      // 接收子组件参数,赋值
      fromChild(data)
        this.fmsg=data;
      
    ,
    components: 
      child
    
  ;
</script>
<style scoped></style>

点击按钮后页面效果图如下

技术图片

 

 

 

 二、路由间的参数传递(query和params)

query和parmas的使用方式大致相同,这里简单介绍一下路由配置、参数的传递和调用

2.1params,参数显示在url

 

以上是关于vue-cli常用传参方式的主要内容,如果未能解决你的问题,请参考以下文章

Vue-CLI项目汇总

vue-cli 配置路由之间跳转传递参数

vue-cli 组件之间的通信

Vue-cli4 对路由配置的一些理解

vue-cli 3.x 使用

vue-cli项目中的插件和依赖