vue学习笔记 十八、父子组件相互传递参数
|
系列导航 |
||
|---|---|---|
基于上一节内容补充子组件向父组件传递参数的方法。
一、 效果
1、红色部分是子组件中onMounted方法触发向父组件传递的参数

2、点击传值给父组件后,调用的是子组件中send方法触发的向父组件传递参数的方法。

二、 项目结构截图

三、代码:
index.js 跟上一节完全一样
import { createRouter, createWebHistory,createWebHashHistory } from 'vue-router'
import Start from '../views/Start.vue'
//路由的配置属组
//paht:路由路劲 必须以/开头 必填
//component:对应的路由组件 必填
//name:路由的名字
const routes = [
{
path: '/',
name: 'Start',
component: Start
},
{
path: '/home',
name: 'Home',
//按需引入
//如果没有访问/about 就不会加载这个组件 节约性能
component: () => import( '../views/Home.vue')
},
{
path: '/about',
name: 'About',
//按需引入
//如果没有访问/about 就不会加载这个组件 节约性能
component: () => import( '../views/About.vue')
} ,
{ //页面直接输入http://localhost:8080/Test 就可以进入test.vue页面
path: '/father',
name: 'Father',
//按需引入
//如果没有访问/about 就不会加载这个组件 节约性能
component: () => import( '../views/father.vue')
}
]
//创建路由对象
const router = createRouter({
//createWebHashHistory hash模式路径前面会多一个#号
history: createWebHistory(process.env.BASE_URL),
routes
})
export default router
father.vue
<template>
<div class="about">
<h1>This is an father page</h1>
子组件传递过来的参数:{{ziParamter}} <!--父组件向子组件传递参数 动态绑定属性 msg的值从return中找到-->
<!--@send为自定义事件,用来接收子组件向父组件传递参数用 send要和子组件中 ctx.emit('send',childMsg.value) 中的第一个参数相同-->
<child :msgZi ='msg' @send='sendDetail'></child> </div>
</template> <script>
import {defineComponent,ref} from 'vue'
import child from '../components/child/Child.vue'
export default defineComponent({
name : 'Father',
components:{
child
},
setup(){
let msg =ref('father params')
let ziParamter = ref('') let sendDetail =(val)=>{
console.log(val)
ziParamter.value = val
} return{
msg,
sendDetail,
ziParamter,
}
} }) </script>
Child.vue
<template>
<div class="about">
<h1>This is an child page</h1>
父组件传递过来的数据:{{msgZi}}
<button @click="send">传值给父组件</button>
</div>
</template> <script>
import {defineComponent,ref,onMounted} from 'vue'
export default defineComponent({
name : 'Child',
//专门接收父组件传递过来的参数
//props接收的数据不能直接改
props:{
msgZi:{
//数据校验
type:String,
//是否必传 默认是false
required:true,
//设置默认值
default:'默认值'
}
},
setup(props,ctx){
console.log(props.msgZi) let childMsg =ref('我是子组件的数据')
let childNum =ref(10) onMounted(()=>{
//ctx.emit 是触发子组件向父组件传递参数的入口
//传多个参数可以用数组的方式
//ctx.emit('send',[childMsg.value,childNum.value])
//多个参数还可以是对象的方式
ctx.emit('send',{
msg:childMsg.value,
num:childNum.value})
}) let send =()=>{
//通过ctx.emit分发事件
//emit第一个参数是 事件名称 第二个参数是传递的数据
ctx.emit('send',childMsg.value)
}
return{
send
}
}
}) </script>
vue学习笔记 十八、父子组件相互传递参数的更多相关文章
- python3.4学习笔记(十八) pycharm 安装使用、注册码、显示行号和字体大小等常用设置
python3.4学习笔记(十八) pycharm 安装使用.注册码.显示行号和字体大小等常用设置Download JetBrains Python IDE :: PyCharmhttp://www. ...
- Vue.js 父子组件相互传递数据
父传子 : 子组件接收变量名=父组件传递的数据 如::f-cmsg="fmsg" 注意驼峰问题 子传父:@子组件关联的方法名 = 父组件接受的方法名 如:@func=" ...
- vue学习笔记(十)路由
前言 在上一篇博客vue学习笔记(九)vue-cli中的组件通信内容中,我们学习组件通信的相关内容和进行了一些组件通信的小练习,相信大家已经掌握了vue-cli中的组件通信,而本篇博客将会带你更上一层 ...
- Vue.js学习笔记 第八篇 组件
全局注册组件 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <ti ...
- vue组件-构成组件-父子组件相互传递数据
组件对于vue来说非常重要,学习学习了基础vue后,再回过头来把组件弄透! 一.概念 组件意味着协同工作,通常父子组件会是这样的关系:组件 A 在它的模版中使用了组件 B . 它们之间必然需要相互通信 ...
- vue学习笔记(1)—— 组件化实现todoList
一.环境搭建 1.npm 大型应用时推荐用npm安装,npm能很好的和webpack等模块打包器配合使用.具体安装步骤请参考网上的诸多教程.完成后使用如下命令安装vue. $ npm install ...
- vue 父子组件相互传递数据
例子一 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta ...
- 从零开始的vue学习笔记(八)
前言 今天花一天时间阅读完Vue Router的官方文档的基础部分,简单的做一下总结和记录 Vue Router是什么 Vue Router 是 Vue.js 官方的路由管理器,用于构建单页应用(SP ...
- vue学习笔记(五)— 组件通信
关于vue父子组件通信 作者:狐狸家的鱼 本文链接:vue组件通信 GitHub:sueRimn 如果组件是一个单页面,组件之间存在父子关系,数据传递就需要根据父子不同的地位使用不同的办法. 借助新建 ...
- (C/C++学习笔记) 十八. 继承和多态
十八. 继承和多态 ● 继承的概念 继承(inheritance): 以旧类为基础创建新类, 新类包含了旧类的数据成员和成员函数(除了构造函数和析构函数), 并且可以派生类中定义新成员. 形式: cl ...
随机推荐
- python原生数据类型(上)
# 查看数据 print('hello world') # 查看数据类型 type('hello world') hello world str 1 数据类型定义 1.1 不可变数据类型 # 数值 # ...
- C++ Qt开发:Charts折线图绑定事件
Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍QCharts ...
- NetSuite 开发日记:如何管理多环境自定义列表值
在 NetSuite 中可以创建自定义列表,列表可用于为其他(自定义)记录上的下拉选项列表值. var rec = record.create({ type: 'customrecord_xx' }) ...
- NetSuite 开发日记:批量增删改
一.批量插入/创建 使用 record.create() 插入数据时,一次只能插入一条,有多条数据需要插入时只能通过循环的方式,这样效率非常慢,耗时会随着数据量的增大而呈线性增长,有一种巧妙的方式可以 ...
- 万界星空科技仓库管理wms系统
企业在管理库存时,尤其是生产制造企业,使用传统方式比如纸笔.Excel 管理库存,由于工具和信息化存在局限,导致在管理库存时出现如下问题: 1.通过纸笔记录出入库申请,人为手动计算易出错,数据易丢 ...
- pytest框架中conftest.py的作用
conftest.py 是 pytest 框架中的一个特殊文件.它允许你为测试提供自定义的配置和钩子函数.以下是 conftest.py 的主要作用: 提供全局配置:你可以在 conftest.py ...
- Java注解,看完就会用
一.什么是注解 定义:注解(Annotation),也叫元数据.一种代码级别的说明. 它是JDK1.5及以后版本引入的一个特性,与类.接口.枚举是在同一个层次. 它可以声明在包.类.字段.方法.局部变 ...
- .net Core实战简单文件服务器
首先新建一个ASP.NET Core 项目,选中空的模板,如下图所示 在NuGet包中添加Microsoft.AspNetCore.StaticFiles 添加好以后我们在Startup.cs中添加对 ...
- ClickHouse的JOIN算法选择逻辑以及auto选项
ClickHouse的JOIN算法选择逻辑以及auto选项 ClickHouse中的JOIN的算法有6种: Direct; Partial merge; Hash; Grace hash; Full ...
- Spring表达式语言(SPEL)学习(03)
rootObject 在表达式中直接写name和getName(),这时候Expression是无法解析的,因为其不知道name和getName()对应什么意思 @Test public void t ...