先准备一个例子,
这是父组件传递给子组件。子组件使用props接收
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<script src="https://unpkg.com/vue"></script>
</head>
<body>
<div id="app">
<div>
<h1>这是父组件</h1>
<!-- msg是父组件实例里面data的msg 传递给子组件的parentmsg,
子组件通过props接收 -->
<com2 :parent-msg="msg"></com2>
</div>
</div>
<!-- 创建子组件 -->
<template id="tem1">
<div>
<h3>我是子组件 -----{{parentMsg}}</h3>
</div>
</template>
<script>
let com2 = {
template: '#tem1',
data() {
return {}
},
methods: {},
props:["parentMsg"]
}
var vm = new Vue({
el: '#app',
data: {
msg: '这是父组件的信息',
count: 1,
},
methods: {},
components: {
com2,
},
})
</script>
</body>
</html>
1,注意子组件通过parentmsg接收的时候不能写驼峰形式,要用-中划线连接
2,不能直接在子组件中操作接收过来的parentMsg,这是vue不允许的。而你要是想改变传递过来的数据,只能通过改变父组件的数据来改变接收过来的数据
子组件传递给父组件 emit
show方法通过形参来接受子组件传递过来的数据,当然可以设置多个形参。