Vue透传 Attributes的代码以及总结

发布时间:2024年01月19日

//透传简单来说就是在子组件写style,class或者函数可以将它们,自动直接传递给 template:里面的单个节点。

//多个节点透传的自动传递会生效,如果在节点中像使用,那么就需要在对应的节点中写像:style="$attrs.style"的形式,才能对应的样式或函数接收到

//inheritAttrs: false可以阻止透传

<!DOCTYPE html>
<html lang="en">
<head>
? <meta charset="UTF-8">
? <meta name="viewport" content="width=device-width, initial-scale=1.0">
? <title>Document</title>
</head>
<body>
? <div id="app">
? ? <div>App 父组件</div>
? ? <hr>
? ? <son
? ? ? class="box"
? ? ? style="width: 300px; height: 200px; background: #ccc;"
? ? ? @click="handleClick"
? ? ></son>
? </div>

? <script src="./lib/vue.global.js"></script>
? <script>
? ? const app = Vue.createApp({
? ? ? methods: {
? ? ? ? handleClick() {
? ? ? ? ? console.log('点击了子组件')
? ? ? ? },
? ? ? }
? ? })

? ? app.component('son', {
? ? ? template: `
? ? ? ? <div class="container" style="background: #f00;" @click="handleSonClick">
? ? ? ? ? 这是子组件
? ? ? ? </div>
? ? ? ? <div :style="$attrs.style">第二个节点</div>
? ? ? `,
? ? ? methods: {
? ? ? ? handleSonClick() {
? ? ? ? ? console.log('这是子组件的 son click 事件...')
? ? ? ? },
? ? ? },
? ? })

? ? app.mount('#app')
? </script>
</body>
</html>

文章来源:https://blog.csdn.net/qq_52840130/article/details/135706265
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。