vue自定义接收父组件传输的值(不使用props )$attrs

简介: vue自定义接收父组件传输的值(不使用props )$attrs
<!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="../vue.global.js"></script>
  </head>
  <body>
    <style>
      .add{
        background-color: red;
      }
    </style>
    <div id="app"> 
      <my-head  title='你好' class='add'></my-head>
    </div>
    <script>
      let app = Vue.createApp({
        data() {
          return { title:''  };
        },
      });
    
      app.component("MyHead", {  
        //子组件 不使用props接收父组件传输的值
       // props: {
        //   title: {
        //     type: String,
        //   },
        //   myclass:{
        //     type:String
        //   }
        // },
        template: `
      <header>  
       <h1 v-bind:title='$attrs.title'>logo</h1>
       <h2 v-bind:myclass='$attrs.myclass'>logo</h2>
           <ul>
            <li>首页</li> 
            <li>音乐</li>
            <li>视频</li>
          </ul>
       </header>
            
            `,
            //inheritAttrs:false
        methods: {
          created(){
           console.log(this.$attrs);
           console.log(this.$attrs.title);
           this.title=this.$attrs.title
            }
        },
      });
      let vm = app.mount("#app");
    </script>
  </body>
</html>

子组件不接受父组件传输的值,那么属性会直接作用于子组件的最外层容器的节点上 可以使用inheritAttrs:false阻止 否则像下图所致
在这里插入图片描述
使用了props那么就会当作正常属性使用(正常接收就不必使用inheritAttrs:false)
在这里插入图片描述
自定义接收父组件传输的值作用子组件某个节点上
(不可使用props接收才能实现)

//所有属性添加到h2的节点
 <h2 v-bind='$attrs'>logo  </h2>

在这里插入图片描述

//针对不同的属性添加到不同的节点
  <h1 v-bind:title='$attrs.title'>logo  </h1>
  <h2 v-bind:myclass='$attrs.myclass'>logo  </h2>

在这里插入图片描述
我即想作用于子组件的某个节点也想使用传过来的值但是作用于子组件的某个节点的时候不可以props接收参数怎么办

//子组件的生命周期使用
 created() {
          console.log(this.$attrs);
          console.log(this.$attrs.title);
          this.title=this.$attrs.title
        },

在这里插入图片描述

相关文章
Vue3中使用setup监听props
Vue3中使用setup监听props
|
7月前
|
JavaScript
Vue 的父组件和子组件生命周期钩子执行顺序
在 Vue 中,父组件和子组件的生命周期钩子执行顺序如下:
|
7月前
|
监控 JavaScript 开发者
在 Vue 中,子组件为何不可以修改父组件传递的 Prop,如果修改了,Vue 是如何监控到属性的修改并给出警告的
在 Vue 中,子组件不能直接修改父组件传递的 Prop,以确保数据流的单向性和可预测性。如果子组件尝试修改 Prop,Vue 会通过响应式系统检测到这一变化,并在控制台发出警告,提示开发者避免这种操作。
|
7月前
|
JavaScript
vue3,使用watch监听props中的数据
【10月更文挑战第3天】
3026 2
|
8月前
|
JavaScript
Vue在子组件中判断父组件是否传来事件
本文介绍了在Vue中如何通过`vm.$listeners`对象来判断父组件是否传递了特定的事件给子组件,并展示了如何检查事件是否存在以及相应的处理方法。
373 0
Vue在子组件中判断父组件是否传来事件
|
8月前
Vue3基础(十san)___父子组件通信___props、emit___provide、inject
文章介绍了Vue3中父子组件通信的两种方式:通过`props`和`emit`传递数据和事件,以及使用`provide`和`inject`在组件树中传递数据。
99 0
Vue3基础(十san)___父子组件通信___props、emit___provide、inject
|
9月前
|
JavaScript 开发工具 git
Vue学习之--------脚手架的分析、Ref属性、Props配置(2022/7/28)
这篇文章分析了Vue脚手架的结构,并详细讲解了`ref`属性和`Props`配置的基础知识、代码实现和测试效果,展示了如何在Vue组件中使用`ref`获取DOM元素或组件实例,以及如何通过`Props`传递和接收外部数据。
Vue学习之--------脚手架的分析、Ref属性、Props配置(2022/7/28)
|
1月前
|
JavaScript
vue实现任务周期cron表达式选择组件
vue实现任务周期cron表达式选择组件
145 4
|
17天前
|
人工智能 自然语言处理 JavaScript
用 CodeBuddy 搭建Vue框架 像呼吸一样简单
本文介绍如何借助 CodeBuddy 快速创建 Vue 项目。CodeBuddy 是一款支持自然语言编程的工具,能根据用户需求自动生成代码,降低开发门槛。文章详细说明了通过 CodeBuddy 创建 Vue 项目的步骤,包括解决项目创建失败的问题、自动补全代码功能以及启动开发服务器的方法。无论开发者经验如何,CodeBuddy 都能显著提升效率,让开发更专注创意实现。
|
27天前
|
缓存 JavaScript 前端开发
Vue 基础语法介绍
Vue 基础语法介绍