Renderless 思想正在影响前端开发

Vue长列表优化实践(infinite-list Renderless组件) 在任何前端项目中,当页面内某处的列表数据量较多时,如果不做任何处理直接循环整个列表数组对象,就会一股脑的把这成百上千个DOM节点全部渲染出来,但我们实际能看到的列表项可能也就那么几条十几条,这些可视区之外成百上千个DOM节点显然都是不必要的性能开销,数据量要是再大一些,卡顿和崩溃都无法避免。可视区高度就是上图中的viewportHeight,每一个列表项的高度就是上图中的itemHeight(包括内容高度和边框、内外边距),当列表开始滚动时,滚动过的距离就是上图中的scrollTop。 阅读详情

本文由前端小伙伴@方长_beezen 原创。欢迎大家踊跃投稿。
原文链接:https://juejin.cn/post/7385752495535472655

前言

截止到 2024 年,跨端应用开发所需要考虑的兼容性,已经涵盖了框架、平台和设备类型等多个方面,例如:

  • 框架:如 React、Vue、Angular、Svelte、Ember 等。
  • 平台:如 鸿蒙、Android、iOS、小程序、快应用、H5 等。
  • 设备:如 PC、移动设备、车载设备等。

多元化的需求场景,对前端工程师的要求也是越来越高,他们必须掌握 2 种以上的编程语言或者开发框架,不然就很难胜任跨端应用开发的岗位。前端开发工程师的开发日常,也因此变得愈发复杂。

在如此严峻的前端大环境下,无渲染组件 (Renderless Components[1])的概念在开发者社区逐渐兴起,频繁出现在各类流行框架中。最早,由 React 社区提出,开发者可以通过将一个 render 函数作为 prop 传递给组件,这个函数可以接收需要的数据,并返回渲染的 UI 内容。后来,在 Vue 框架中提出了 slots 概念,组件内部真实需要渲染的 UI 内容,可以通过插槽的形式控制。现在,无渲染组件被视为一种新模式,其核心理念是将组件的逻辑与表现分离,达到高可复用的效果。换句话说,无渲染组件只关注组件的内部逻辑行为,而将 UI 表现内容交由调用组件来处理。

无渲染组件通过将组件逻辑行为抽象,我们可以更轻松地在各种不同的 UI 表现上下文中重用它,它的出现不仅减轻前端工程师的工作任务,也为跨端应用的开发提供了更多的可能性。

什么是无渲染组件?

无渲染组件(Renderless Components)是一种设计模式,其核心理念是将组件的逻辑和表现分离。具体来说,无渲染组件只关注业务逻辑和状态管理,而不关心具体的 UI 渲染实现。常见的无渲染组件实现方式如下:

Render Props

通过 render prop 属性将一个函数作为子组件传递,使得父组件可以完全控制 UI 渲染。

React 无渲染组件实现,如下:

import React from "react";

class MouseTracker extends React.Component {
  constructor(props) {
    super(props);
    this.state = { x: 0, y: 0 };
  }

  // 组件内部逻辑,可复用
  handleMouseMove = (event) => {
    this.setState({
      x: event.clientX,
      y: event.clientY,
    });
  };

  render() {
    // this.props.render 渲染子组件
    return (
      <div onMouseMove={this.handleMouseMove}>
        {this.props.render(this.state)}
      </div>
    );
  }
}

在父组件调用时,(x,y) 属性值由无渲染组件提供,UI 渲染则可以自定义控制:

<MouseTracker render={ ({ x, y }) => (
<h1>The mouse position is ({x}, {y})</h1>
) } />

Scoped Slots

Scoped Slots 是一种允许父组件完全控制子组件渲染内容的模式,通过 Scoped Slots 向父子组件双向传递数据和方法,而父组件则负责具体的 UI 渲染。

Vue 无渲染组件实现,如下:

<template>
  <slot :mouse="mouse"></slot>
</template>

<script>
  export default {
    data() {
      return {
        mouse: { x: 0, y: 0 },
      };
    },
    mounted() {
      window.addEventListener("mousemove", this.handleMouseMove);
    },
    methods: {
      handleMouseMove(event) {
        this.mouse = { x: event.clientX, y: event.clientY };
      },
    },
  };
</script>

在父组件调用时,(x,y) 属性值由无渲染组件提供,UI 渲染则可以自定义控制。

<template>
  <MouseTracker v-slot="{ mouse }">
    <h1>The mouse position is ({{ mouse.x }}, {{ mouse.y }})</h1>
  </MouseTracker>
</template>

<script>
  import MouseTracker from "./MouseTracker.vue";
  export default {
    components: {
      MouseTracker,
    },
  };
</script>

无渲染组件 vs 传统组件

除了上面提到的 render props 和 slots 之外,还有很多其他类似的无渲染组件应用场景。我们不需要关注怎样实现才算是无渲染组件,它只是一种思想,用于将传统组件的逻辑和表现进行分离,从而达到高可复用的一种状态。例如 React 中 HOC(高阶组件)、现在主流的 React Hooks 和 Vue Composition API 等方式,都为实现无渲染组件提供了有利条件。值得一提,Renderless 设计模式特别适合跨端应用的开发,将包含各端应用的特性兼容代码提取到 UI 层特性层实现。

下面是无渲染组件对比传统组件的特性对照表:

特点无渲染组件传统组件
逻辑与表现的分离1、只包含业务逻辑,不包含具体的 UI 渲染。 2、渲染由父组件或使用它的组件决定。 3、适合复用复杂的逻辑而不关心具体的 UI 表现。1、包含业务逻辑和 UI 渲染。 2、组件本身决定如何渲染 UI。 3、适合封装独立的功能模块,包含逻辑和展示。
复用性高度复用性,逻辑可以在不同的 UI 实现中复用复用性较低,逻辑和 UI 紧耦合。
灵活性更加灵活,父组件可以完全控制渲染方式和样式。灵活性较低,UI 表现固定。
测试难度1、测试相对简单,只需测试逻辑部分。 2、不涉及 UI 渲染,测试范围更集中1、测试较复杂,需要测试逻辑和 UI 渲染。 2、需要关注组件的整体行为,包括展示和交互.

无渲染组件的优势在于逻辑与表现分离,实现了高复用性和极大灵活性。它允许父组件可以自定义渲染方式和样式,增强了组件的组合能力,使开发更高效、代码更简洁。同时,无渲染组件还简化了测试过程,保障了应用的稳定性。

无渲染组件 vs 公共函数

在日常项目开发中,我们会将项目中的公共逻辑封装为纯函数,以实现代码复用,它们一般不会涉及具体的 UI 渲染和组件的生命周期管理。虽然,无渲染组件也是类似的设计思想。但是,它会利用框架提供的状态管理和数据流特性,将实现更高级的组件功能复用。总而言之,无渲染组件更专注于将组件的逻辑与 UI 分离,不仅仅只考虑公共能力的抽象。

通过无渲染组件的设计思想,我们可以显著地减少开发工作量,同时最大限度地复用组件逻辑,保障模块功能的完整性和稳定性。

下面的两张图,进一步展示了无渲染组件和传统公共函数在设计思想上的异同之处:

在这里插入图片描述

无渲染组件库

目前,采用无渲染组件思想设计的优秀组件库有 TinyVue[2],它目标兼容 Vue、Vue3、React、Angular、Solid 等框架,覆盖 PC 端和 Mobile 端。
在这里插入图片描述

TinyVue 充分采用了无渲染组件的设计思想,将可复用的逻辑行为抽象到 renderless 模块中,每一个组件的 UI 表现又单独抽象到 PC 模块和 Mobile 模块,实现了跨端、跨版本的高可重用性。

下面是 TinyVue 官方发布的组件架构图:

在这里插入图片描述
在这里插入图片描述

TinyVue 组件库可以在不同终端、不同技术栈的场景下使用,得益于其底层强大的兼容封装能力,暴露给用户使用的 API 接口基本相同,极大地降低了跨端应用中的学习和迁移成本。

最后

Renderless 设计模式的崛起标志着前端开发进入了更加灵活和高效的时代。通过将组件的逻辑与 UI 表现分离,Renderless 组件不仅提升了代码的复用性和可维护性,还为开发者在多平台、多技术栈下的应用开发提供了更多可能性。随着这一设计模式的逐步普及和应用,我们可以期待未来跨端开发将更加轻松和高效。

参考资料

  • Vue renderless components[3]
  • Understanding Renderless Components in Vue[4]
  • 从 0 到 1 实现 OpenTiny 组件库跨框架技术[5]
  • OpenTiny[6]

参考资料
[1]Renderless Components: https://www.patterns.dev/vue/renderless-components/

[2]TinyVue: https://github.com/opentiny/tiny-vue

[3]Vue renderless components: https://www.patterns.dev/vue/renderless-components/

[4]Understanding Renderless Components in Vue: https://www.telerik.com/blogs/understanding-renderless-components-vue

[5]从 0 到 1 实现 OpenTiny 组件库跨框架技术: https://www.cnblogs.com/huaweiyun/p/17776415.html

[6]OpenTiny: https://github.com/opentiny/tiny-vue/blob/dev/README.zh-CN.md

关于OpenTiny

OpenTiny 是一套企业级 Web 前端开发解决方案,提供跨端、跨框架、跨版本的 TinyVue 组件库,包含基于 Angular+TypeScript 的 TinyNG 组件库,拥有灵活扩展的低代码引擎 TinyEngine,具备主题配置系统TinyTheme / 中后台模板 TinyPro/ TinyCLI 命令行等丰富的效率提升工具,可帮助开发者高效开发 Web 应用。

欢迎加入 OpenTiny 开源社区。添加微信小助手:opentiny-official 一起参与交流前端技术~
OpenTiny 官网:https://opentiny.design/
OpenTiny 代码仓库:https://github.com/opentiny/
TinyVue 源码:https://github.com/opentiny/tiny-vue
TinyEngine 源码: https://github.com/opentiny/tiny-engine
欢迎进入代码仓库 Star🌟TinyEngine、TinyVue、TinyNG、TinyCLI~ 如果你也想要共建,可以进入代码仓库,找到 good first issue标签,一起参与开源贡献~

简介:基于 OpenTiny 组件库的 rendereless 无渲染组件架构 在 HAE 自研阶段,我们实现的数据双向绑定、面向对象的 JS 库、配置式开发的注册表等特性,随着前端技术的高速发展现在已经失去存在的意义,但是在 AUI 阶段探索的新思路新架构,经过大量的业务落地验证,再次推动前端领域的创新。TinyVue 继承了 HAE、AUI,OpenTiny 是一套企业级组件库解决方案,适配 PC 端 / 移动端等多端,涵盖 Vue2 / Vue3 / Angular 多技术栈,拥有主题配置系统 / 中后台模板 / CLI 命令行等效率提升工具,可帮助开发者高效开发 Web 应用。 阅读详情

相关推荐

renderless-toast-vue3:在Vue 3中编写和使用无渲染组件的示例

Vue 3的无渲染吐司通知 该项目是在背景下 在src/libs/toastNotificationsPlugin.ts您可以找到一个简单的插件,该插件实现基本的Toast通知功能,并提供一个无渲染的toast-notifications组件。 通过使用无渲染组件,您可以根据需要设置通知的样式。 在src/components您可以找到三个使用toast-notifications示例: 一些原始输出,没有太多的样式/动画 从Bootstrap使用CSS 使用Tailwind CSS 可以在Vue 2中使用吗? 当前,插件的实现使用Vue 3 API。 因此,要使其与Vue 2一起使用,您必须重写插件如何添加全局方法。 但总的来说,无渲染组件的概念也可以在Vue 2中使用。

Vue中的renderless 非渲染组件

面试中遇到的一个问题,什么是 renderless ? renderless即非渲染组件开发的思想, 请看下文 01 什么是 render 函数 众所周知,在工程中,我们会在.vue文件中定义<template>、<script>和<style>三种tag,分别盛放组件html、javascript和css。 <template><button class="mood"> {{ state ? ...

bug收集 1231

从SolidWorks到URDF:插件使用、关节配置与PyBullet仿真避坑指南

本文提供了一份从SolidWorks导出URDF模型并导入PyBullet进行仿真的完整实战指南。详细讲解了SolidWorks插件的正确安装与配置、关节类型的选择与坐标系对齐的核心技巧,并针对PyBullet仿真中常见的模型散架、路径错误、物理属性异常等问题提供了深度避坑解决方案,帮助机器人开发者高效完成从设计到仿真的全流程。

weixin_29081101的博客 544

vue---组件逻辑复用方法:Mixin/HOC/Renderless组件

下文通过表单校验来分别讲解Mixin/HOC/Renderless组件这三种方式。

maidu_xbd的博客 850

Java开发者必看:WPS Office在线预览接入实战(含回调配置避坑指南)

本文为Java开发者提供了WPS Office在线预览功能的完整接入实战指南。详细解析了从服务申请、生成带签名的访问URL,到实现核心回调接口(文件信息、用户信息、文件保存)的全流程,并重点分享了签名算法与回调配置中的关键避坑点,帮助开发者高效集成,提升Web应用文档处理体验。

vodka的博客 1329

STM32 DMA串口重定向printf:高效调试与性能优化实战

本文详细介绍了STM32 DMA串口重定向printf的实现方法与性能优势。通过对比传统方式的CPU高占用问题,阐述了DMA技术如何实现高效数据传输,大幅降低CPU负载。文章包含完整的代码实现、缓冲区管理技巧及实战调试方案,帮助开发者优化嵌入式系统调试效率。

lake5的博客 99

Livewire Renderless 属性完全指南:跳过渲染阶段,为高频后端操作减负

`#[Renderless]` 是 Livewire 提供的一个方法级属性(Attribute),它能在调用组件 Action 时**跳过 Livewire 生命周期中的渲染阶段**,让那些不需要更新视图的后端操作(如埋点统计、日志记录、计数器累加)以更低的成本执行。本文以 [docs/attribute-renderless.md](https://link.gitcode.com/i/fefd

gitblog_00852的博客 656

从.har文件到Postman集合:一键转换的完整教程(附避坑指南)

本文详细介绍了如何将.har文件高效转换为Postman集合的完整教程,涵盖基础操作到高级技巧,包括认证信息处理、环境变量提取等痛点问题的解决方案。通过抓包工具记录的.har文件,开发者可以快速生成Postman集合,提升API调试与测试效率,特别适合前后端分离开发模式下的团队协作。

weixin_26795617的博客 384

从 Renderless 架构到 WebAgent:我的 OpenTiny 前端智能化实战之路

从 Renderless 到 WebAgent,这一路没有“银弹”。 我们做过很多看似聪明但短命的方案,也做过很多不炫酷但长期有效的基础建设。 最终留下来的,几乎都符合一个规律: 越接近工程本质的能力,越能穿越技术周期。 如果你也在探索前端智能化,我的建议是: 不要先问“用哪个模型最强”,先问“你的前端能力是否可抽象、可治理、可编排”。 当这三件事准备好,WebAgent 就不是概念,而是生产力。 而这,正是我这段实战之路最重要的收获。

qq_32278033的博客 367

3D 韩系风格漫剧人设 | GPT-Image2 人设生成【附完整提示词】

宁姚同款清冷剑系美人,极致小巧鹅蛋脸,下颌线紧致纤细流畅,下巴小巧精致收窄,小脸衬得五官格外舒展,韩式水光肌,面部精细水光高光,鼻梁高光、鼻尖高光、面中苹果肌高光、唇珠高光,红棕色长卷发偏分大波浪,垂在一侧肩前,发量蓬松。发量丰厚蓬松有体积感,不贴头皮,几缕碎发自然垂落脸侧修饰脸型,长度过胸及背,发丝柔顺丝滑卷度自然,发尾自然垂落,身穿香槟色缎面挂脖长裙,挂脖设计无袖露肩露背,上半身围裹式荡领胸口垂褶,腰部堆褶收腰,修身直筒包臀裙长度到脚踝,缎面光泽感强垂坠感好,极简剪裁。纯白色背景,3D漫剧写实厚涂风。

欢迎来到鸾姝淡月博客,专为程序员和编程爱好者打造的技术博客。我们分享编程语言趋势、开发工具、编程哲学、职业发展等,助你掌握新技术,优化技能,激发编程热情。 137

YOLOv11的嗅觉传感器数据关联-(特殊场景下的气味-视觉联合分析)

摘要 本文探讨了YOLOv11与嗅觉传感器融合的多模态感知技术。通过分析YOLOv11的架构特性与嗅觉传感器的数据特点,提出了三种融合策略:数据级、特征级和决策级融合。系统采用硬件同步方案实现时空对齐,包含视觉采集模块、嗅觉传感模块和边缘计算单元。环境配置基于Python 3.9和PyTorch 2.0,支持实时多模态数据处理。该技术可应用于环境监测、工业检测等场景,突破单一视觉感知的局限性。

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 626

VueUse 组件化封装指南:使用 @vueuse/components 渲染无头组件(Renderless Components)

`@vueuse/components` 是 VueUse 在 v5.0 引入的独立子包,它为 `@vueuse/core` 中大量 composable 函数提供了"渲染无头(renderless)"的组件版本:模板中不再需要手动绑定 ref、不再需要手工调用函数,事件绑定与响应式数据自动通过组件的 props、事件(emit)和 `v-slot` 作用域插槽暴露。阅读本文后,你将掌握如何安装并

gitblog_00626的博客 468

打通ZYNQ的任督二脉:AXI_FIFO数据交互全解析

FIFO(First In First Out,先进先出)是一种经典的数据缓冲结构,就像排队买票一样,先来的人先得到服务。时钟域交叉(CDC):连接不同时钟频率的模块数据缓冲:平衡生产者和消费者的速度差异流量控制:防止数据丢失或溢出input clk,// 输入AXI4-Stream接口(从PS到PL)// 输出AXI4-Stream接口(从PL到PS)// 状态指示信号// 定义状态机状态// 数据缓存// 8个深度的缓存// 流水线处理寄存器。

QQ_778132974的博客 306

Vue2到Vue3迁移实践:Renderless架构让逻辑无缝复用

Renderless(无渲染)组件是一种将业务逻辑与视图完全解耦的组件设计模式,它只负责状态管理,通过作用域插槽把数据和行为暴露给展示层。这种模式天然隔离了Vue版本差异,因为逻辑部分不依赖模板语法,而Vue2的slot-scope与Vue3的v-slot等插槽差异被收敛在展示层,大幅降低Vue2向Vue3迁移的复杂度。同时,它也规避了v-model默认事件、$listeners合并等破坏性变更带来的连锁修改,让同一套逻辑组件可以稳定运行在两端。远程搜索下拉、联动选择器、定时轮询列表等高复用业务场景非常适合

weixin_32822843的博客 177

Machine Unlearning: A Survey

机器学习已经引起了广泛的关注,并发展成为一种使能技术,用于广泛的高度成功的应用,如智能计算机视觉、语音识别、医疗诊断等。然而,由于隐私、可用性和/或被遗忘权,一些特定样本的信息需要从称为机器遗忘的模型中删除,这就产生了一种特殊的需求。这项新兴技术因其创新性和实用性而引起了学术界和工业界的极大兴趣。与此同时,这个雄心勃勃的问题导致了许多旨在应对其挑战的研究工作。据我们所知,没有任何研究分析过这一复杂的主题,也没有比较过现有的遗忘解决方案在不同场景下的可行性。因此,通过这项调查,我们旨在了解遗忘技术的关键概念。

c_cpp_csharp的专栏 1159

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Vue2迁移Vue3:用Renderless组件把逻辑与渲染解耦,低摩擦重构

在前端组件开发中,逻辑与视图的耦合往往是框架升级时最大的隐性成本。Vue2迁移Vue3不只是API替换,更多是组件架构的重新梳理。Renderless组件通过作用域插槽与渲染函数,把状态管理、交互行为与DOM结构彻底分离,让组件只提供能力而不限定外观。这种无渲染组件设计在Vue3组合式API配合下更显灵活,也适用于多端复用与工程化改造。实际落地时,将Tabs、分页、筛选面板等高频逻辑组件抽象为Renderless,同一套业务逻辑可以低摩擦切换版本,大幅降低迁移爆炸半径。掌握这一思路,能让老项目回归可控升级节

weixin_29002595的博客 230

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Livewire wire:intersect 指令完全指南:视口进入/离开检测、可见度阈值与滚动交互

`wire:intersect` 是 Livewire 提供的视口相交(viewport intersection)指令:当元素进入或离开浏览器视口(或某个滚动容器)时,自动调用组件方法。它非常适合实现无限滚动、内容懒加载、曝光统计(analytics)以及各种基于滚动的交互。阅读本文后,你将掌握 `wire:intersect` 的完整修饰符体系(`.once`、`.dwell`、`.half`

gitblog_00716的博客 158

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

告别组件碎片化!TinyVue 3.26 双框架全场景解决方案

你是否正在为企业级应用开发中的组件碎片化、跨框架兼容性和多端适配问题而困扰?作为开发者,我们常面临这样的困境:PC端与移动端组件风格不统一、Vue 2与Vue 3项目需要维护两套组件库、第三方组件定制化困难导致品牌形象不统一。这些问题不仅增加了开发成本,还严重影响了用户体验的一致性。 本文将全面解析TinyVue企业级UI组件库的核心优势、架构设计与实战应用,帮助你在15分钟内掌握这套支持双框架...

gitblog_01424的博客 658

探索Vue的组件世界-组件复用

函数接收一个组件作为参数,并返回一个新组件;可复用的逻辑在函数中实现。高阶函数的应用,装饰者模式的一种实现。左面子组件,右面是复用逻辑。

qq_35729091的博客 1445

《Vue》组件的设计和复用

前言 只要是项目,绕不开的就是组件的封装和复用,虽然现在有很多前端的UI库,比如Element等等,但是这些UI库很多是基于最小颗粒度做的组件,实际项目中往往需要将多个基础组件封装在一个大组件里,举个例子,标题栏,在后台管理系统中往往一个标题栏包含了:标题,返回按钮,有时还有会新增,或者用于切换的按钮组; 组件设计 思路 组件的封装不是一开始就可以随便封装的,因为组件的迭代会影响到之后的所有使用的页面的正常与否,因此,对于组件的封装需要仔细斟酌,不必要的组件封装有时候会成为后期维护的包袱; 因此,第一个页面

Oliver尹的博客 693

TinyVue组件库内置工具函数全解析:从源码到业务复用

前端组件库不仅是UI组件的集合,更是一座沉淀了多年工程实践的工具函数宝库。在实际开发中,类型判断、深拷贝、防抖节流、日期格式化等基础能力,常常决定了业务代码的质量与可维护性。以Vue生态中支持Vue2和Vue3双版本且基于renderless无渲染架构的TinyVue为例,其源码内部维护了一套轻量级、与框架解耦的实用函数库,用于解决跨版本兼容、组件间逻辑复用和浏览器环境差异等问题。这些函数不仅服务于组件库自身,也具备在业务项目中直接复用或二次封装的价值。通过理解组件库的函数设计思路与边界处理方式,开发者可以

weixin_29001419的博客 331

直播回顾|带你体验很实用的OpenTiny

本期直播主题是《解决开发者“兼容”难题,OpenTiny技术探索与应用解读》,华为云开源DTSE技术布道师曾令卡在本期直播中与开发者一起详细交流了OpenTiny组件库解决方案的核心优势和设计理念。并通过具体的实操给大家演示OpenTiny如何通过一行命令搭建中后台管理系统,同时也给大家演示了定制化的主题配置系统。

OpenTiny的博客 972

深度解析:TinyVue Tree组件内尺寸属性失效的根源与解决方案

在企业级前端开发中,开发者常常需要在Tree(树形)组件内部嵌套TinyNumeric(数字输入框)和TinyInput(文本输入框)等表单组件,并通过`size`属性统一控制界面元素的尺寸。然而在实际开发中,这些嵌套组件的尺寸往往不受控制,表现为: - **尺寸不继承**:Tree组件设置`size="small"`后,内部输入框仍显示默认尺寸 - **属性传递失效**:直接为内部组件设置`s...

gitblog_01426的博客 293

Livewire `wire:click` 指令完全指南:从事件绑定到并行执行的源码级解析

`wire:click` 是 Livewire 中最常用的指令之一,它允许你在用户点击页面元素时直接调用 PHP 组件中的方法(即 Livewire 中的 Actions),从而以极低的样板代码成本打通前后端。本文以官方文档 [docs/wire-click.md](https://link.gitcode.com/i/c5a527c02d7268ce41c96877de2b4b6f) 为核心骨架

gitblog_00739的博客 197

Livewire 的 wire:model 完全指南:表单双向绑定的核心机制与更新时机控制

`wire:model` 是 Livewire 框架(面向 Laravel 的全栈动态 UI 框架)中最核心的指令之一,它让组件属性与表单输入之间的绑定变得极其简单。本文以仓库 [docs/wire-model.md](https://link.gitcode.com/i/02a438120a92079131f7bbb0bd5a9896) 为骨架,结合前端指令实现 [js/directives/w

gitblog_00727的博客 755

TinyVue 接入低代码平台:物料元数据与渲染器的实战踩坑

在低代码平台建设中,组件库选型与集成是核心环节,而物料元数据的规范化、运行时动态渲染及配置面板的自动化,决定了平台能否高效支撑可视化搭建。依托 Vue 3 生态,TinyVue 组件库凭借 Renderless 架构实现逻辑与视图分离,为多端多版本复用提供了基础;其接入低代码设计器的实践,重点涉及物料 JSON 设计、递归渲染器实现、setter 映射、事件编排及数据引用 DSL 等关键技术节点。同时,真实的集成过程也暴露了样式隔离、双 Vue 实例、表格表单特殊处理及性能优化等高频问题。这些落地经验对于正

weixin_33585822的博客 265
上一篇: 7月6日 VueConf 技术大会即将在深圳举办
下一篇: 10个JavaScript One-Liners让初学者看起来很专业
OpenTiny社区
博客等级 码龄4年 1540粉丝 266原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值