Vue-Element-Admin项目学习笔记(9)表单组件封装,父子组件双向通信

news2024/11/23 10:04:19

前情回顾:

vue-element-admin项目学习笔记(1)安装、配置、启动项目
vue-element-admin项目学习笔记(2)main.js
文件分析
vue-element-admin项目学习笔记(3)路由分析一:静态路由
vue-element-admin项目学习笔记(4)路由分析二:动态路由及permission.js
vue-element-admin项目学习笔记(5)路由分析三:动态路由匹配逻辑
Vue-Element-Admin项目学习笔记(6)Vuex状态管理
Vue-Element-Admin项目学习笔记(7)用Node.js写一个简单后端接口
Vue-Element-Admin项目学习笔记(8)配置表单校验规则

1、需求分析

我们需要一个添加学生的功能,在功能中,有一个选择专业的下拉框:
在这里插入图片描述
该组件的下拉框内容,是我们通过后端接口动态获取的
且,改下拉框,很可能在其他页面中,也要应用到
所以,我们需要把它封装一个独立的组件。
这里就涉及到了,父子组件间通信的问题。

我们先回顾一下,我们学过的,vue父子通信的几种实现(不说vuex)了

2、父子组件通信回顾

这里不包括vuex

写了两篇父子间通信笔记,需要的小伙伴,可以自行回顾一下。

  • vue组件通信简明笔记:父传子

  • vue组件通信简明笔记:子传父

3、组件拆分

  • 拆分前:
...
    
    <el-row style="margin-top: 30px;">
      <el-col :span="24">
        <el-form-item label="所选专业" prop="zy">
        
          <!--  拆分前 的下拉框 -->
 
            <el-select v-model="zy" placeholder="请选择" @change="$emit('input',$event)">
                <el-option
                v-for="item in options"
                :key="item.value"
                :label="item.label"
                :value="item.value">
                </el-option>
            </el-select>
          
       </el-form-item>
      </el-col>
    </el-row> 

...
  • 拆分后:
...
    
    <el-row style="margin-top: 30px;">
      <el-col :span="24">
        <el-form-item label="所选专业" prop="zy">
        
          <!--  拆分后的组件 -->
          <select-zhuan v-model="stuForm.zy"/>
          
       </el-form-item>
      </el-col>
    </el-row> 

...

4、组件通信

组件通信过程是:

  1. 父组件把用户点击的项目传给子组件:父组件利用v-model方法,把用户选定值通过prop给到子组件

  2. 子组件接收父组件传来的数值:

    • 子组件通过props得到数据

      props:{
          value:{
              type:String,
              default:''
          }
      },
      ...
          data() {
      return {
      options: [{
        value: 'python',
        label: 'python'
      }, {
        value: 'c',
        label: 'C语言'
      }, {
        value: 'java',
        label: 'java开发'
      }, {
        value: 'vue',
        label: 'vue前端'
      }, {
        value: 'mysql',
        label: 'MySQL数据库'
      }],
      zy:this.value //避免直接修改props
      
      }
      

    }
    ```

  3. 子组件将数据传给父组件

    • <el-select v-model="zy" placeholder="请选择" @change="$emit('input',$event)">
    • 在触发change事件的时候,使用$emit('input',$event)将值传给父组件
    • 父组件v-model接收到数据
  4. 父组件收集到子组件的传值,用于提交

    • …略

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/703434.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

TOWARDS A UNIFIED VIEW OF PARAMETER-EFFICIENT TRANSFER LEARNING

本文也是属于LLM系列的文章&#xff0c;针对《TOWARDS A UNIFIED VIEW OF PARAMETER-EFFICIENT TRANSFER LEARNING》的翻译。 关于参数有效迁移学习的统一观点 摘要1 引言2 前言2.1 Transformer结构综述2.2 之前的参数高效调优方法综述 3 弥合差距-统一的视角3.1 仔细观察Pref…

火山引擎A/B测试推出智能流量调优实验,助力汽车行业破局营销困境

更多技术交流、求职机会&#xff0c;欢迎关注字节跳动数据平台微信公众号&#xff0c;回复【1】进入官方交流群 2023年是汽车行业挑战加剧的一年&#xff0c;在这样一个变革时期&#xff0c;多家车企都在进行创新技术和战略调整&#xff0c;实现灵活的科学决策&#xff0c;在发…

03 Web全栈 浏览器内置对象/事件/ajax

浏览器是一个JS的运行时环境&#xff0c;它基于JS解析器的同时&#xff0c;增加了许多环境相关的内容&#xff0c;用一张图表示各个运行环境和JS解析器的关系如下&#xff1a; 我们把常见的&#xff0c;能够用JS这门语言控制的内容称为一个JS的运行环境&#xff0c;常见的运行环…

PDF怎么在线编辑?PDF编辑软件推荐!​

PDF怎么在线编辑&#xff1f;PDF是一种常见的文档格式&#xff0c;用于存储和共享各种类型的文档&#xff0c;如电子书、报告、表格、合同和演示文稿等。然而&#xff0c;PDF文档通常是只读的&#xff0c;无法直接进行编辑。在过去&#xff0c;要编辑PDF文档通常需要购买专业的…

JVM 常量池、即时编译与解析器、逃逸分析

一、常量池 1.1、常量池使用 的数据结构 常量池底层使用HashTable key 是字符串和长度生成的hashValue&#xff0c;然后再hash生成index, 改index就是key&#xff1b;Value是一个HashTableEntry&#xff1b; 1、key hashValue hash string(name&#xff0c; len) i…

高级DBA手把手教你解决clickhouse数据库宕机生产事故实战全网唯一

高级DBA手把手教你解决clickhouse数据库宕机生产事故实战演练 一、事故描述 生产环境clickhouse宕机&#xff0c;重启之后&#xff0c;反复重启&#xff0c;重启几秒钟又死了。甲方客户叫天&#xff0c;大老板火冒三丈&#xff0c;天下大乱。老板电话打过来&#xff0c;要求半…

webrtc源码阅读之examples/peerconnection

阅读webrtc源码&#xff0c;从examples中的peerconnection开始。版本m98。 一、 基本流程 server端只是做了一个http server&#xff0c;来转发client端的消息。也就是起到了信令服务器的作用&#xff0c;本篇文章不在研究&#xff0c;感兴趣的可以学习一下用cpp搭建http serv…

Mysql架构篇--Mysql(M-M) 主从同步

文章目录 前言一、M-M 介绍&#xff1a;二、M-M 搭建&#xff1a;1.Master1&#xff1a;1.1 my.cnf 参数配置&#xff1a;1.2 创建主从同步用户&#xff1a;1.3 开启复制&#xff1a; 2.Master2&#xff1a;2.1 my.cnf 参数配置&#xff1a;2.2 创建主从同步用户&#xff1a;2.…

飞桨携手登临解读软硬一体技术优势,共推AI产业应用落地

众所周知&#xff0c;AI应用落地面临着场景碎片化、开发成本高、算力成本高等诸多难题&#xff0c;这对AI框架与AI芯片都提出了非常高的要求&#xff0c;即既要满足端、边、云多场景的部署需求&#xff0c;还需要支持自动化压缩与高性能推理引擎深度联动。因此充分发挥软硬一体…

通过一个简单的例子理解 Python 中的多线程

关于进程和线程的概念可以看这篇文章: https://blog.csdn.net/ThinkWon/article/details/102021274 什么时候需要多线程编程&#xff1f;简单来说就是一个程序里面有比较耗时间的操作&#xff0c;你希望先让它单独跑着&#xff0c;直接开始进行下一步的操作&#xff08;Python默…

centos中部署调用matlab程序

环境&#xff1a; Java8 MATLAB2018b centos7 在本机环境上运行成功后的代码打包部署到服务器上运行会报错&#xff0c;需要在服务器上安装MATLAB的运行环境。 首先下载跟本机MATLAB环境一样的mcr文件。 打开网址 http://cn.mathworks.com/products/compiler/mcr/ 下载对…

Python调用百度地图API实现路径规划提取真实距离、时间

1.注册百度地图开放平台账号 网址&#xff1a;百度地图开放平台 | 百度地图API SDK | 地图开发 2.打开控制台&#xff0c;创建应用、获取AK 如下图所示 桥重点、敲重点、瞧重点 在使用python调用API端口时&#xff0c;我们需要申请的为服务端应用类别&#xff0c;别申请错了…

JS实现简单拼图游戏

JS实现简单拼图游戏 点击“打乱”按钮开始游戏&#xff1b;按下鼠标左键拖动一块到另一块上松开鼠标左键互换。游戏资源为一张图片 我这里名称为 2.jpg&#xff0c;将其与下面的网页文件放在同一目录中即可。 网页文件源码如下&#xff1a; <!DOCTYPE html> <html&…

Chapter 1: Introduction - Why Program? | Python for Everybody 讲义_Cn

文章目录 Python for Everybody课程简介适合所有人的 Python (Why Program?)为什么要学习写程序&#xff1f;创造力和动力计算机硬件架构了解编程单词和句子与 Python 对话术语&#xff1a;解释器和编译器Writing a program什么是程序&#xff1f;The building blocks of prog…

移远通信联合中国移动研究院等伙伴发布5G RedCap和车载模组白皮书

6月28日&#xff0c;在“2023年上海世界移动通信大会(MWC)”上&#xff0c;中国移动研究院联合移远通信等产业合作伙伴&#xff0c;共同发布了《5G RedCap轻量化通用模组技术要求白皮书》以及《车载模组技术发展白皮书》。 白皮书的发布为5G RedCap和车载领域技术和产业的进一步…

pdf加水印怎么加?一分钟学会!

在办公场景中&#xff0c;我们经常需要向客户或同事发送PDF格式的文件。这时就会面临一个问题&#xff1a;如何为我们的劳动成果打上个人烙印呢?答案是通过添加水印来满足我们的需求。但是&#xff0c;如何给PDF添加水印呢?难道要手动一个个添加吗?这无疑非常费力&#xff0…

整合来自多个Aurora数据库数据,亚马逊云科技为用户提供数据分析一体化融合解决方案

亚马逊云科技近日在沙利文联合头豹研究院发布的《2023年中国数据管理解决方案市场报告》中再次获评中国数据管理解决方案的领导者位置&#xff0c;并在增长指数和创新指数上获得最高评分。亚马逊云科技凭借其独特的数据服务和数据湖组合、全面的无服务器选项、打破数据传输壁垒…

ReentrantReadWriteLock源码

介绍 用一个变量如何维护多种状态 在 ReentrantLock 中&#xff0c;使用 Sync ( 实际是 AQS )的 int 类型的 state 来表示同步状态&#xff0c;表示锁被一个线程重复获取的次数。 但是&#xff0c;读写锁 ReentrantReadWriteLock 内部维护着一对读写锁&#xff0c;如果要用一…

软件自动化测试初学者忠告,错过就后悔了

目录 自动化测试进阶 自动化测试的层次 脚本 1-1 不要在实际项目中使用录制和回放 1-2 不要使用暂停 1-3 在循环中超时退出 1-4 不要将自动化测试完全等同于开发 1-5 不要写复杂的代码 1-6 验证逻辑条件的所有选项 1-7 使用编程规范 1-8 使用静态代码分析器 1-9 随…

Jmeter使用beanshell对接口加密,调用AES代码的jar包,CBC模式,有偏移量。

目录 前言&#xff1a; 这是AES加密代码 beanshell中的脚本 前言&#xff1a; 对接口进行加密是保障数据安全的重要措施之一。在JMeter中&#xff0c;你可以使用BeanShell脚本来实现对接口数据的加密处理。 工作中需要对接口进行AES加密&#xff0c;找开发要来了加密的代码…