在平时我们使用VUE组件的时候,经常需要将父组件的某些数据传递给子组件,这个时候,我们通常会有很多的办法,这里主要分为两种情况:

第一种:静态数据传递:传递一个 字符串
第二种:动态数据传递:绑定一个字符串传过去,一个数组,或者是一个对象传递过去


这里主要看一下动态的数据绑定。比如你可以将你所有需要的数据都封装在一个数组,或者是一个对象里面然后 传递给子组件。

但是有一个问题,假如你有两个数据,一个对象,一个数组,需要同时从父组件传递给子组件,你会怎么办?


这里就通过一个例子来说明一下:

子组件的JS
/**
 *  收货地址组件  马优晨
 **/
define(function(require, exports, module){
    var $ = require("lib_cmd/zepto-cmd"),
        Vue = require('lib_cmd/vue-cmd'),
        main = require("js_cmd/main-cmd"),
    var vm= Vue.component('myaddress', {
        template: '\
        <div data-role="data-widget" data-widget="address-editor" class="address_mask" id="address-editor">\
        </div>',
        props:["address","ids"],
        methods: {
        },
        created: function () {
        }
    });
    module.export= vm;
})
/*注册名为“myaddress”的组件 ,从父组件传递过来两个数据"address","ids"*/

父组件EJS页面
<%- include ../../header %>
<link href="/css/vd/activity/myAward.css?v=<%= config.version %>" rel="stylesheet" />

<div data-role="container" class="body <%= pageName %>" id="myAward">
    <myaddress :address="editAddr" :ids="ids"></myaddress>
</div>

    <script>
        seajs.use('js_cmd/vd/activity/myAward-cmd');
    </script>
<%- include ../../footer %>

/*在定义的组件 “myaddress”中绑定两个父组件的数据 "editAddr" "ids"*/

父组件的JS页面
/**
 * Created by youchen.ma on 2017/6/21.
 */
define(function (require, exports, module) {
    var $ = require("lib_cmd/zepto-cmd"),
        Vue = require("lib_cmd/vue-cmd"),
        main = require("js_cmd/main-cmd"),
        Address = require('js_cmd/vd/venue/widget/venueEditAddress-cmd')  //引入子组件的JS文件

        var vm = new Vue({
        el: '#myAward',
        data:{   
            editAddr:{},       
            ids:""             
            }
        })
})
Logo

前往低代码交流专区

更多推荐