内容管理(九)02-频道(下拉列表选项)组件封装-实现-父子组件传值 和 v-model的使用

本文详细介绍了一个频道选择组件的封装过程,包括内部功能实现、数据结构处理及全局注册步骤。通过Vue框架,实现了频道数据的动态加载与双向绑定,提升了用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

14-频道组件封装-实现

频道组件封装-实现01-内部功能
  • 内部功能的实现

    components/my-channel.vue 组件

<template>
  <el-select v-model="value" placeholder="请选择" clearable>
    <el-option v-for="item in channelOptions" :key="item.id" :label="item.name" :value="item.id"></el-option>
  </el-select>
</template>

<script>
// 基础功能:结构  数据  获取
export default {
  name: 'my-channel',
  data () {
    return {
      // 当前选择频道ID
      value: null,
      // 频道选项数据
      channelOptions: []
    }
  },
  created () {
    this.getChannelOptions()
  },
  methods: {
    async getChannelOptions () {
      // const {
      //   data: { data }
      // } = await this.$http.get('channels')
      const data = { channels: [{ id: 1, name: 'java' }, { id: 2, name: '前端' }] }
      this.channelOptions = data.channels
    }
  }
}
</script>

<style scoped lang='less'></style>

  • 全局注册:

components/index.js

import MyBread from '@/components/my-bread'
+import MyChannel from '@/components/my-channel'
export default {
  install (Vue) {
    Vue.component(MyBread.name, MyBread)
+    Vue.component(MyChannel.name, MyChannel)
  }
}

频道组件封装-实现02-v-model实现
  • v-model指令功能
    • 父传子::value
    • 子传父:@input

**父组件:**渲染显示的页面——src/views/article/index.vue

<!-- 封装的组件 :value="reqParams.channel_id"  @input="reqParams.channel_id=接受数据" -->
<my-channel v-model="reqParams.channel_id"></my-channel>

**子组件:**封装的组件——src/components/my-channel.vue

接受父组件数据

// value 数据 仅读
props: ['value'],
<el-select :value="value" 

选择过频道数据后,把频道ID提交父组件

<el-select @change="fn"
fn (channelId) {
    // channelId 当你清空操作 值是空字符串  改成null
    if (channelId === '') channelId = null
    // 提交父组件
    this.$emit('input', channelId)
},
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值