模仿elementui的Table,实现思路

vue2子组件使用render,给子子组件插槽传值

和elementui的Table一样使用render

在 Vue 2 中,子组件使用render函数向子子组件插槽传值可以通过以下步骤实现:

1、创建子组件

首先创建一个子组件,在子组件中使用render函数来渲染内容。在render函数中,可以通过this. s l o t s . d e f a u l t 获取父组件传递过来的默认插槽内容,通过 t h i s . slots.default获取父组件传递过来的默认插槽内容,通过this. slots.default获取父组件传递过来的默认插槽内容,通过this.scopedSlots获取父组件传递过来的具名插槽内容。

bash 复制代码
Vue.component('child-component', {
  render: function (createElement) {
    // 获取父组件传递的默认插槽内容
    var defaultSlot = this.$slots.default;
    // 获取父组件传递的具名插槽内容
    var namedSlot = this.$scopedSlots && this.$scopedSlots.slotName;
    return createElement('div', [
      createElement('p', '这是子组件'),
      // 渲染默认插槽内容
      defaultSlot,
      // 渲染具名插槽内容
      namedSlot && namedSlot()
    ]);
  }
});

2、创建子子组件

创建一个子子组件,该组件接收一个prop属性来获取父组件传递的值。

bash 复制代码
Vue.component('sub-child-component', {
  props: ['message'],
  template: '<div>{{ message }}</div>'
});

3、使用子组件和子子组件

在父组件中使用子组件,并通过插槽向子组件传递内容。在子组件中,通过this. s l o t s . d e f a u l t 或 t h i s . slots.default或this. slots.default或this.scopedSlots获取插槽内容,并将其传递给子子组件。

bash 复制代码
<div id="app">
  <child-component>
    <sub-child-component slot="slotName" message="这是传递给子子组件的值"></sub-child-component>
  </child-component>
</div>
相关推荐
亿元程序员2 小时前
太牛了!这AI做出来的游戏,居然还能变现!
前端
hellice2 小时前
闪传 FlashDrop 实战:我用 300 行 Node 代码做了个「4 位取件码」临时文件中转站
前端·产品
用户0829773260052 小时前
RTX 5500 MIG 踩坑记录:切分之后模型跑不起来,排错整整一下午
前端
Lank_M2 小时前
AI 放大后的图更清楚,但它不能当原图入库
前端
Swot2 小时前
SvelteKit 数据流研究:`+page.js` 和 `+page.server.js` 到底谁在跑,数据又去了哪儿
前端·后端
用户4147679304152 小时前
Windows 触摸屏上 Swiper 轮播滑不动?可能是内部滚动容器抢走了你的手势
前端
张明君644512 小时前
从一个 Referer 引发的 403,到 SSR 服务失稳:Astro 流式渲染与缓存失效分析
前端
律宏阔2 小时前
微信小程序 + Taro + TDesign 去掉 [&&&],让普通 Tailwind 类接管局部样式
前端·微信小程序·taro
费曼学习法2 小时前
把 3 个内部服务封装成 MCP Server 的工程复盘:进程模型、超时与错误契约
前端
Captaincc2 小时前
转译:《软件工程师现在该怎么办》
前端·后端·ai编程