首页 > 其他分享 >vue3的父子通信

vue3的父子通信

时间:2022-11-21 23:55:47浏览次数:41  
标签:console log dataList res child 通信 父子 item vue3

父组件 import { students, studentDel } from "@/api/api.js"; // eslint-disable-next-line no-unused-vars import { ref, reactive, toRefs, onMounted, useContext, computed, getCurrentInstance } from 'vue' import child_student from './child_student.vue' export default { components: { // eslint-disable-next-line vue/no-unused-components child_student }, setup() { const { proxy } = getCurrentInstance() console.log(proxy, '53****') const child_student =ref(null) const dataList = reactive({ tableData: [], currentPage: 1, //当前页数 pageSize: 10, // 每页显示条数 total: 0, // 总条数 formInline: { name: "", }, count:0 }) const compData = computed(() => { return dataList.tableData.slice( (dataList.currentPage - 1) * dataList.pageSize, dataList.currentPage * dataList.pageSize ); }) const dataMethod = { getObject(){ dataList.count+=1; console.log(dataList.count,'81//////') }, getList() { dataMethod.father() }, father() { alert('1233333333') }, find() { child_student.value.expose() console.log(dataList.formInline); dataMethod.getData(dataList.formInline) }, reset() { console.log(dataList.formInline); // @ts-ignore dataList.formInline = {} dataMethod.getData(dataList.formInline) }, handleSizeChange(val) { dataList.pageSize = val; dataList.currentPage = 1; }, handleCurrentChange(val) { dataList.currentPage = val; }, getData(params) { students(params).then((res) => { if (res.data.status === 200) { dataList.tableData = res.data.data; dataList.total = res.data.total; console.log(res); dataList.tableData.forEach((item) => { // 尽量不要修改原数据 item.sex === 1 ? (item.sex_text = "男") : (item.sex_text = "女"); item.state === "1" ? (item.state_text = "已入学") : item.state === "2" ? (item.state_text = "未入学") : (item.state_text = "休学中"); }); } }); }, del(row) { console.log(row); studentDel(row.id).then((res) => { console.log(res); if (res.data.status === 200) { proxy.$message({ message: "删除数据成功", type: "success" }); dataMethod.getData(); } }); }, } onMounted(() => { dataMethod.getData(); child_student.value.expose() console.log(child_student.value.count, '138****/*/*') }) return { ...toRefs(dataList), ...dataMethod, compData, child_student } } } 子组件 子传父数字
子传父对象

标签:console,log,dataList,res,child,通信,父子,item,vue3
From: https://www.cnblogs.com/czb1218/p/16913842.html

相关文章

  • 卫星通信常用专业词汇
    卫星通信常用专业词汇来源https://blog.csdn.net/niuyong_10086/article/details/72942876 ACUAntennaControlUnit ,天线控制单元,用于调整天线的方位角、仰......
  • IIC通信协议
    1、IIC简介IIC(Inter-IntergatedCircuit,集成电路总线)由飞利浦(Pilliphs)公司发明,是一种串行总线通信。有两根线: SDA:SerialDAta串行数据线 数据传输按bit位,属于半双工......
  • Vue3官方出的Playground你都用了吗?没有没关系,直接原理讲给你听
    相比​​Vue2​​​,​​Vue3​​​的官方文档中新增了一个在线​​Playground​​:打开是这样的:相当于让你可以在线编写和运行​​Vue​​​单文件组件,当然这个东西也是开源......
  • vue3.0之ref函数
    1、ref推荐定义基本数据类型(ref值也可以是对象,但是一般情况下是对象直接使用reactive更合理)。2、在 vue 的模板中使用ref的值不需要通过value获取(vue 会通过自动......
  • vue3中的v-model
    V-model具体的变化内容:-组件上单个v-model:属性以及事件的默认名称变了-组件上单个v-model别名:v-bind的.sync修饰符和组件的model......
  • 【Vue3】给整个网页背景document添加单击click事件
    给整个网页背景document添加单击click事件,解决下拉菜单隐藏问题onMounted(()=>{//document.addEventListener('click',function(){alert('body1')})documen......
  • vue3+vant移动端适配 px转换rem
    Vant中的样式默认使用px作为单位,如果需要使用rem单位,推荐使用以下两个工具:postcss-pxtorem是一款postcss插件,用于将px单位转化为remlib-flexible用于设置re......
  • NB-IoT通信模组/模块
    2017-05-26更新,国内3家,国外1家。QUECTEL(移远)LTEBC95NB-IoTModuleBC95与GPRS模块M95/M35硬件兼容,在暂时没有NB-IoT网络的情况下,可以使用M95/M35。LTEBG96Cat.M1/NB1......
  • IIC协议master可以和master 通信吗
    协议介绍I2C(Inter-IntegratedCircuit)是一种通用的【总线协议】,一种简单的双向两线制总线协议标准;实现I2C需要两根信号线完成信息交换,SCL时钟信号线,SDA数据输入/输......
  • Vue3 reactive 之源码的实现
    Reflect.get()方法与从对象(target[propertyKey])中读取属性类似,但它是通过一个函数执行来操作的。exportconstreactive=<Textendsobject>(target:T)=>{......