有时候阳光很好,有时候阳光很暗,这就是生活。不就应迫求一切种类的快乐,就应只追求高尚的快乐。
在平时我们使用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 rel="nofollow noopener noreferrer" href="/css/vd/activity/myAward.css?v=<%= config.version %>" rel="external nofollow" 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:"" } }) })
以上这篇vue父组件向子组件传递多个数据的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。