首页 > 其他分享 >vue3-组合式api-参数(props,context)及父子组件传值

vue3-组合式api-参数(props,context)及父子组件传值

时间:2022-11-08 08:57:05浏览次数:44  
标签:const name counter api context vue3 组件 message ref

一、父组件 <template>   <div>     <h2>我是父组件</h2>     <div>counter:{{ counter }}</div>     <button @click="callChildFun">调用子组件方法</button>     <children       :message="message"       @changeCounter="changeCounter"       ref="childrenRef"     ></children>   </div> </template>
<script> import { ref } from "vue"; import children from "./children.vue";
export default {   components: {     children,   },
  setup() {     const message = ref("hello");     const counter = ref(10);
    //改变counter     function changeCounter(data) {       counter.value = data.value;     }
    //这个常量名要和子组件的ref属性一致     const childrenRef = ref(null);
    //父组件调用子组件的方法     const callChildFun = () => {       childrenRef.value.changeName("李四");     };
    return {       message,       counter,       changeCounter,       childrenRef,       callChildFun,     };   }, }; </script>   二、子组件 <template>   <div>     <h2>我是子组件</h2>     <div>message:{{ message }}</div>     <div>name:{{ name }}</div>     <button @click="sendParent">发送数据</button>   </div> </template>
<script> import { ref } from "vue";
export default {   props: {     message: {       type: String,       default: "你好",     },   },   setup(props, context) {     console.log("message", props.message);
    const counter = ref(20);     function sendParent() {       context.emit("changeCounter", counter);     }
    const name = ref("张三");     //改变名字     function changeName(data) {       name.value = data;     }
    return {       sendParent,       name,       changeName,     };   }, }; </script>   三、运行项目界面效果图如下   1.子组件message由你好变为hello

2.点击调用子组件方法按钮 子组件name变为李四

 

3.点击发送数据按钮 父组件counter由10变为20

 

 四、总结

1.父组件给子组件传值有两种方式 

(1)通过props传值

(2)在父组件中调用子组件方法传值

2.子组件给父组件传值 通过emit事件

 

出  处:https://www.cnblogs.com/xiao-wo-niu/
版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。

 

 

 

标签:const,name,counter,api,context,vue3,组件,message,ref
From: https://www.cnblogs.com/xiao-wo-niu/p/16865037.html

相关文章

  • 实验7:基于REST API的SDN北向应用实践
    基本要求一.编写Python程序,调用OpenDaylight的北向接口实现以下功能(1)利用Mininet平台搭建下图所示网络拓扑,并连接OpenDaylight;打开OpenDaylight控制器./distribution-......
  • 无法启动组件[StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]
    最近在更新代码后,一直运行不了tomcat的项目。【报错问题】如下:  后来经过网上各种资源尝试,什么斜杠没加、依赖包没有、环境问题等等均无效果。最后呢,竟然是无意间操......
  • VUE3初学
    VUE初学创建一个Vue项目powershell中运行vueui 认识Vue各个文件夹(20条消息)前端Vue项目架构-文件夹作用的分析总结_码大星的博客-CSDN博客 .Vue文件 t......
  • Certificates API
    (1)用户创建了key(2)然后使用该key,生成证书签名请求,附带上自己的名字(3)然后,发送该请求到管理员(4)管理员使用一个key,创建证书签名请求对象(5)证书签名请求对象,像创建其他kuber......
  • Windows API与MFC的关系
    Windows应用程序编程接口(WindowsApplicationProgrammingInterface),程序员想编写Windows平台上的软件,必须借助WindowsAPI,Win32API也就是MicrosoftWindows32位平台的应......
  • JavaScript之数组高阶API—reduce()
    一文搞懂JavaScript数组中最难的数组API——reduce()前面我们讲了数组的一些基本方法,今天给大家讲一下数组的reduce(),它是数组里面非常重要也是比较难的函数,那么这篇文章......
  • (Redis使用系列) Springboot 使用redis实现接口Api限流 十
    前言 该篇介绍的内容如题,就是利用redis实现接口的限流( 某时间范围内最大的访问次数) 。正文 惯例,先看下我们的实战目录结构:首先是pom.xml核心依赖: <!--用于redis......
  • Mediapipe在安卓上运行
    一、安装Linux虚拟机,选择Ubuntu版本二、在Ubuntu上安装Mediapipe1.安装编译环境Bazel,我选择的是二进制文件安装,查看Bazel文档:使用Bazelisk安装/更新Bazel 1)安装......
  • 使用tp6的.env文件 api 设置
    使用tp6的.env文件设置bug调试设置成这样的话可以显示错误信息并且api调试的时候也不会出现div样式config.php.env文件......
  • APICloud实战案例:如何封装AVM组件?(以声网组件为例)
    AVM.js(Application-View-Model)是一个移动优先的高性能跨端JavaScript框架,支持一次编写多端渲染。它提供更趋近于原生的编程体验,通过简洁的模型来分离应用的用户界面、业......