代码拉取完成,页面将自动刷新
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>provide和inject,作用是进行多级组件传值</title>
<script src="https://cdn.bootcdn.net/ajax/libs/vue/3.0.2/vue.global.js"></script>
</head>
<body>
<div id="app"></div>
</body>
<script>
const app = Vue.createApp({
data() {
return {
house: "北京别墅一套",
//只要不直接修改obj的引用就是响应的,可修改其属性值
obj: {
message: "sad",
},
};
},
// provide: {
// newHouse: "北京200平方房子一套",
// message:this.message
// },
provide() {
return {
a: this.obj,
newHouse: "北京200平方房子一套",
};
},
template: `
<input v-model="obj.message"/>{{obj.message}}
<div>我有一套房子,我先传给我的儿子</div>
<child/>
`,
});
app.component("child", {
template: `
<div>我是子组件,我要把房子再传给我儿子。</div>
<child-child/>
`,
});
app.component("child-child", {
inject: ["newHouse", "a"],
template: `
<div>我是孙子,等待接收房子______ {{newHouse}}-{{a.message}}</div>
`,
});
// 我是孙子,等待接收房子______ 北京200平方房子一套-hehe
const vm = app.mount("#app");
</script>
</html>
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。