首页 > 其他分享 >vue2 父传子,子传父

vue2 父传子,子传父

时间:2023-10-12 11:15:34浏览次数:37  
标签:子传父 default 传递数据 export 父传子 vue2 props 组件 message

在Vue 2中,使用props来从父组件向子组件传递数据,而要从子组件向父组件传递数据,通常需要使用自定义事件。关键字分别是:

  1. 从父组件向子组件传递数据(父传子):
    • props:可以在子组件中使用props来接收父组件传递的数据。在父组件中,使用子组件标签的属性来传递数据。

示例:

<!-- 父组件 -->
<template>
  <child-component :message="parentMessage"></child-component>
</template>

<script>
export default {
  data() {
    return {
      parentMessage: "这是父组件的消息"
    };
  }
}
</script>

<!-- 子组件 -->
<template>
  <div>
    <p>{{ message }}</p>
  </div>
</template>

<script>
export default {
  props: {
    message: String // 子组件通过props接收父组件的数据
  }
}
</script>
  1. 从子组件向父组件传递数据(子传父):
    • $emit:可以在子组件中使用$emit触发自定义事件,并在父组件中监听这些事件。

示例:

<!-- 子组件 -->
<template>
  <button @click="sendMessageToParent">向父组件发送消息</button>
</template>

<script>
export default {
  methods: {
    sendMessageToParent() {
      this.$emit('child-event', "这是子组件发送的消息");
    }
  }
}
</script>

<!-- 父组件 -->
<template>
  <div>
    <child-component @child-event="handleChildEvent"></child-component>
  </div>
</template>

<script>
export default {
  methods: {
    handleChildEvent(message) {
      console.log("父组件接收到子组件的消息:", message);
    }
  }
}
</script>

在这个示例中,子组件使用$emit触发名为child-event的自定义事件,并传递一条消息,而父组件使用@child-event监听这个事件,从而接收来自子组件的数据。

标签:子传父,default,传递数据,export,父传子,vue2,props,组件,message
From: https://www.cnblogs.com/code3/p/17759028.html

相关文章

  • vue2,3render函数的简单使用
    render函数的主要作用:创建虚拟DOM:render函数负责创建虚拟DOM元素,这些元素以JavaScript对象的形式表示页面的结构和内容。根据状态和数据生成UI:render函数根据组件的状态(data数据)、属性(props)、计算属性(computed)、方法(methods)等信息,生成虚拟DOM,包括元素、组件、事件......
  • 【vue2】实现长按图片保存功能
    <span:class="[$style.wxCode,isShow&&$style['show']]"@touchstart="touchStart()"@touchend="touchEnd()"></span>ps.span元素为图片元素,我这里把图片设置为元素背景......
  • vue3比vue2优势
    Vue3相对于Vue2有一些显著的优势,主要集中在性能、开发体验和一些新的特性上:性能提升:虚拟DOM的优化:Vue3使用了更高效的虚拟DOM算法,减少了不必要的DOM操作,提高了渲染性能。编译器优化:Vue3的编译器生成的代码更为紧凑和高效,加速了首次渲染和更新速度。更小的包大小:Vu......
  • vue2自定义指令实现el-dropdown下拉菜单项最小宽度等于内容宽度
    //在main.js添加Vue.directive('siem-dropdown',function(el,binding,vNode){letul=el.querySelector("ul")letuid=vNode.componentInstance._uid;//获取下拉菜单实例的uidletsiemDropdownClass=`siem-dropdown-${uid}`;ul.cla......
  • getRefs is undefined html vue2项目 报错
    vue2项目提示getRefsisundefined在div上面写了,ref,还写了v-if然后再watch中操作了ref导致报错。分析:组件因为v-if为false没有注册和渲染,在操作的时候还使用了this.$refs函数就会获取不到解决办法:v-if换成v-show ......
  • vue2 指令- unaipp
    指令指令是有v-前缀的特殊属性。指令属性的值预期是单个JavaScript表达式(v-for是例外情况)。指令的作用是,当表达式的值改变时,将其产生的连带影响,响应式地作用于DOM。一些指令能够接收一个“参数”,在指令名称之后以冒号(:)表示。v-bind动态地绑定一个或多个属性,或......
  • Vue2.0 浅学笔记
    Vue是框架,也是生态。1.VueAPI风格选项式(Vue2)组合式(Vue3)2.入门node.js版本大于153.创建项目创建项目npminitvue@latest开发环境VScode+Volar4.基本语法1.文本插值仅能使用单一表达式使用JavaScript表达式每个绑定仅支持单一表达式,也就是一段能够被求值的J......
  • 【vue2】实现数字纵向滚动效果(计时器效果)
    需求:在页面中显示一个数字,并在进入视口时显示计时器滚动效果: 效果如上↑ 新建组件ScrollNumber.vue:<template><divstyle="display:inline-flex;justify-content:flex-start;align-items:center;"><divv-for="(item......
  • vue2兼容ie10
    1.找到ie浏览器。可以下载,一般windows自带2.启动项目,可能会出现再ie中输入本地地址后直接跳转到MicrosoftEdge的情况,需要配置后正常使用ie10配置过程:控制面板--网络和Internet--Internet选项--更改主页--高级--勾选跟InternetExplorer相关的某项。3.解决:babel分为预设和单......
  • vue2 访问网关的时候post无法请求
    问题复现:后台使用微服务的框架在consul配置并使用网关进行代理。 问题描述:前台访问网关调用后台方法 请求方式为get时正常使用~post时显示跨域问题 post访问路径正常但就是无效果显示跨域问题报错解决方法:module.exports=defineConfig({......