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

这篇具有很好参考价值的文章主要介绍了Vue-Element-Admin项目学习笔记(9)表单组件封装,父子组件双向通信。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前情回顾:

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-Element-Admin项目学习笔记(9)表单组件封装,父子组件双向通信
该组件的下拉框内容,是我们通过后端接口动态获取的
且,改下拉框,很可能在其他页面中,也要应用到
所以,我们需要把它封装一个独立的组件。
这里就涉及到了,父子组件间通信的问题。

我们先回顾一下,我们学过的,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. 父组件收集到子组件的传值,用于提交文章来源地址https://www.toymoban.com/news/detail-513333.html

    • …略

到了这里,关于Vue-Element-Admin项目学习笔记(9)表单组件封装,父子组件双向通信的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue-element-admin项目-Host key verification failed.-已解决

    在网上下载的element-admin项目,install的时候一直报错Host key verification failed, 实测好用!!!已解决 报错问题: 上面写到主机密钥验证失败,无法从远程仓库拉取。说明我们需要生成一个新的密钥,然后添加到远程仓库     打开 Git Bash 终端,将下面的文本复制进去执行(使

    2024年02月08日
    浏览(71)
  • 【vue-element-admin】github高质量vue项目解读,小白都能看懂(第三篇)

    日月几何,天地玄黄,今日奇观,书接上一回。 这次我们来讲 panel-group / 组件 因为本文是跟着项目来的,所以不从第一篇看起的小伙伴云里雾里,所以针对以上情况,我决定对于 vue-element-admin 项目出现的大部分技术栈以及知识点(比如:element-ui,echarts,vuex等等)进行讲解

    2024年02月02日
    浏览(54)
  • 【springboot+vue项目(十五)】基于Oauth2的SSO单点登录(二)vue-element-admin框架改造整合Oauth2.0

    Vue-element-admin 是一个基于 Vue.js 和 Element UI 的后台管理系统框架,提供了丰富的组件和功能,可以帮助开发者快速搭建现代化的后台管理系统。 vue-element-admin/   |-- build/                          # 构建相关配置文件   |    |-- build.js                   # 生产环境构建脚本

    2024年02月20日
    浏览(43)
  • vue-element-admin入门

    这里下载的是基础模板,要下载完整版的可以去官网下载 运行项目的过程中可能会报错Error: error:0308010C:digital envelope routines::unsupported,如何解决可以这篇文章 https://blog.csdn.net/2301_76809965/article/details/130456851 如果我们安装的是基础模板,我们运行打开项目后应该是这个样子 m

    2024年02月02日
    浏览(73)
  • vue-element-admin - 最新完美解决项目是英文的问题,将英文变成中文的汉化处理详细教程(克隆完项目后不是中文的解决方法)

    网上的教程(并且都是好几年前的了)克隆运行后界面文字全都是英文的,如果您想要中文汉语版本请使用本文的方案。 本文 解决了克隆运行 vue-element-admin 项目后,默认是英文的问题!将语言设置为中文的详细教程! 官方文档说的很晦涩,您可以按照本教程步骤进行操作即

    2024年02月09日
    浏览(111)
  • vue-element-admin的接口请求

    以退出登录接口为例 封装request.js:添加请求拦截器和响应拦截器 封装permission.js:添加路由导航守卫 在src/api/user.js中写接口 在store中写退出登录逻辑 在vue页面中调用登录接口 请求拦截器:做一些发送请求前的操作,比如说在请求头上携带token,处理一些错误 响应拦截器:处

    2024年02月16日
    浏览(69)
  • vue-element-admin 快速构建后台系统

    vue-element-admin是基于element-ui 的一套后台管理系统集成方案。 功能: https://panjiachen.github.io/vue-element-admin-site/zh/guide/# 功能 GitHub地址: https://github.com/PanJiaChen/vue-element-admin 项目在线预览: https://panjiachen.gitee.io/vue-element-admin vue-admin-template是基于vue-element-admin的一套后台管理系统

    2024年02月04日
    浏览(77)
  • 【Vue-Element-Admin】table添加自定义索引

    通过给 type=index 的列传入 index 属性,可以自定义索引。该属性传入数字时,将作为索引的起始值。也可以传入一个方法,它提供当前行的行号(从 0 开始)作为参数,返回值将作为索引展示。

    2024年02月05日
    浏览(70)
  • 后台管理系统模板推荐(vue-element-admin)

    vue-element-admin 是基于vue 和 Element-ui 的一套后台管理系统集成的模板 GitHub地址: https://github.com/PanJiaChen/vue-element-admin 项目在线预览: https://panjiachen.gitee.io/vue-element-admin 由尚硅谷提供的 登录页面 主页面 element-ui 是饿了么前端出品的基于 Vue.js的 后台组件库,方便程序员进行页

    2024年02月16日
    浏览(56)
  • vue-element-admin - 克隆项目后 npm install 装包时报错:code 128 An unknown git error occurred(完美解决方案,100% 解决!)

    网上大部分方案都不行,请仔细对比如下报错信息,如果我们一样的话,本文的方案 100% 解决! 克隆 vue-element-admin 项目时,npm install 装包时,出现了如下报错。 npm ERR! code 128 npm ERR! An unknown git error occurred npm ERR! command git --no-replace-objects ls-remote ssh://git@github.com/nhn/raphael.git n

    2024年02月10日
    浏览(80)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包