zoukankan      html  css  js  c++  java
  • vue程序中组件间的传值方式

    
    vue程序在组件中进行传值有多种方式,这里记录我在项目中使用到的三种:
        1. 父组件向子组件传值
        2. 子组件向父组件传值
        3. 通过路由传参
    
    
    1. 父组件通过props向子组件传值

    在子组件script中声明所要接收的参数名称以及类型

    
    props: {
        deliverValue: String
    }
    

    在父组件template中使用子组件并向子组件传值

    
    <v-child :deliverValue="s"></v-child>
    

    完成上面的步骤后可直接在子组件中使用传递的参数值(方法与访问data中的值一样)

    2. 子组件通过事件向父组件传参

    在子组件中:

    
    <button @click="$emit('change-value', 1)">change value button</button>
    // 或在脚本中定义对应的方法进行时间触发
    // <button @click="change">change value button</button>
    // ...
    // ...
    // methods: {
    //     change () {
    //         this.$emit('change-value', 1)
    //     }
    // }
    
    
    vm.$emit( eventName, […args] )
    $emit是vue实例的方法,用于触发当前实例上的事件。第一个参数表示触发的方法名,第二个为附加的参数。
    可根据需要决定是否传参。
    

    在父组件中:

    
    <v-child @change-value:"change"><v-child>
    ...
    methods: {
        change (val) {
           console.log(val) // 1 
        }
    }
    

    3 通过路由进行传值

    在需要路由跳转的地方:

    
     <router-link :to="{name: 'onlinemap', params: { index: 'dom' }}"><button>跳转到在线地图</button></router-link >
    
    
       1. 其中v-bind:to需要传入的数据为键值对对象,因此在定义此路由时,需添加name属性
        (这里onlinemap就是在线地图页面路由的name属性值)
       2.使用路由传参的其他方法:https://router.vuejs.org/zh/guide/essentials/passing-props.html
    

    在目标页面:

    
    var param = this.$route.params.index 
    

    获取参数

    原文地址:https://segmentfault.com/a/1190000017155239

  • 相关阅读:
    Apache OFBiz 学习笔记 之 实体引擎
    Apache OFBiz 学习笔记 之 服务引擎 二
    Apache OFBiz 学习笔记 之 服务引擎 一
    [OFBiz]开发 五
    [OFBiz]开发 四
    [OFBiz]开发 三
    [OFBiz]开发 二
    通过Wmi实现Hyper-V远程管理(一)
    wifi智能插座 一键扫描局域网内插座Ip及其它信息 Python源代码API
    .NET4.0下使用Net2.0类库或程序集
  • 原文地址:https://www.cnblogs.com/qixidi/p/10121884.html
Copyright © 2011-2022 走看看