在平時(shí)我們使用VUE組件的時(shí)候,經(jīng)常需要將父組件的某些數(shù)據(jù)傳遞給子組件,這個(gè)時(shí)候,我們通常會(huì)有很多的辦法,這里主要分為兩種情況:
第一種:靜態(tài)數(shù)據(jù)傳遞:傳遞一個(gè) 字符串
第二種:動(dòng)態(tài)數(shù)據(jù)傳遞:綁定一個(gè)字符串傳過(guò)去,一個(gè)數(shù)組,或者是一個(gè)對(duì)象傳遞過(guò)去
這里主要看一下動(dòng)態(tài)的數(shù)據(jù)綁定。比如你可以將你所有需要的數(shù)據(jù)都封裝在一個(gè)數(shù)組,或者是一個(gè)對(duì)象里面然后 傳遞給子組件。
但是有一個(gè)問(wèn)題,假如你有兩個(gè)數(shù)據(jù),一個(gè)對(duì)象,一個(gè)數(shù)組,需要同時(shí)從父組件傳遞給子組件,你會(huì)怎么辦?
這里就通過(guò)一個(gè)例子來(lái)說(shuō)明一下:
子組件的JS
/** * 收貨地址組件 馬優(yōu)晨 **/ 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; }) /*注冊(cè)名為“myaddress”的組件 ,從父組件傳遞過(guò)來(lái)兩個(gè)數(shù)據(jù)"address","ids"*/
父組件EJS頁(yè)面
<%- include ../../header %> <link 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”中綁定兩個(gè)父組件的數(shù)據(jù) "editAddr" "ids"*/
父組件的JS頁(yè)面
/** * 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父組件向子組件傳遞多個(gè)數(shù)據(jù)的實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
Copyright ? 2019- 91gzw.com 版權(quán)所有 湘ICP備2023023988號(hào)-2
違法及侵權(quán)請(qǐng)聯(lián)系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市萬(wàn)商天勤律師事務(wù)所王興未律師提供法律服務(wù)