vue中父傳子(props)的用法
阿新 • • 發佈:2018-12-29
方式一:靜態
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <script src="https://cdn.bootcss.com/vue/2.5.17-beta.0/vue.js"></script> </head> <body> <div id="app"> <parsent></parsent> </div> <script> var childNode = { template:` <div>{{forChildMsg}}</div> `, props: ['for-child-msg'] }; var parsentNode = { template: ` <div> <child for-child-msg="aaa"></child> <child for-child-msg="bbb"></child> </div> `, components: { child: childNode } }; new Vue({ el: '#app', components: { parsent: parsentNode } }) </script> </body> </html>
方式二:動態
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <script src="https://cdn.bootcss.com/vue/2.5.17-beta.0/vue.js"></script> </head> <body> <div id="app"> <parsent></parsent> </div> <script> var childNode = { template:` <div>{{forChildMsg}}</div> `, props: ['for-child-msg'] }; var parsentNode = { template: ` <div> <child :for-child-msg="msg1"></child> <child :for-child-msg="msg2"></child> </div> `, components: { child: childNode }, data(){ return { msg1: '這是msg1', msg2: '這是msg2' } } }; new Vue({ el: '#app', components: { parsent: parsentNode } }) </script> </body> </html>
驗證:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <script src="https://cdn.bootcss.com/vue/2.5.17-beta.0/vue.js"></script> </head> <body> <div id="app"> <parsent></parsent> </div> <script> var childNode = { template:` <div>{{forChildMsg}}</div> `, props: { forChildMsg: { type: String, default:'12' } } }; var parsentNode = { template: ` <div> <child :for-child-msg="msg1"></child> <child :for-child-msg="msg2"></child> </div> `, components: { child: childNode }, data(){ return { msg1: '這是msg1' } } }; new Vue({ el: '#app', components: { parsent: parsentNode } }) </script> </body> </html>