其实Lit简介:基于标准的反应库 的问题并不复杂,但是又很多的朋友都不太了解,因此呢,今天小编就来为大家分享Lit简介:基于标准的反应库 的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!
在前端JavaScript框架中,LIT是用于被动编程的有趣选择。它引起了开发人员的极大兴趣,但是与其他反应性框架相比,它仍然相对较低。 LIT构建在Mozilla Web组件标准上,优先考虑速度和一系列有用的功能。
Mozilla Web组件标准
要了解点亮,您必须了解Web组件。作为所有主要浏览器支持的浏览器标准,Web组件提供了定义UI组件的一致方法。 Web组件的想法是为开发人员提供浏览器中的一套工具,以满足UI组件的一般需求。在理想的世界中,每个框架,无论是反应,vue还是其他框架,都将位于Web组件层的顶部,为Web开发提供了更一致的一致性。
LIT是一个干净,专注的图书馆,可为使用Web组件的开发人员提供更舒适的体验。它通过生成仅是自定义HTML元素的网络组件来起作用。这些元素可以广泛使用,例如在React中。这是一个基于标准的简单问候部分:
组件的工作和功能如何显而易见,尽管有几个有趣的功能,例如构造函数和影子根源。要注意的主要内容是,Web组件允许您使用浏览器标准定义封装功能,该标准可以直接在Web控制台中运行。
使用点亮开发网络组件
现在,让我们看一下相同的功能,但使用点亮。
LIT还允许我们使用渲染方法返回由HTML函数生成的模板。 HTML函数参数的内容允许您将HTML与可变插值相结合。这类似于JSX和其他模板语法,但是请注意,我们使用$ {}而不是{},我们使用它来参考组件。
尝试此操作的最简单方法是使用点亮的在线操场。请注意,在此操场上,您需要使用TS(Typescript)切换来使注释起作用。 (此限制仅与操场有关;评论将与构建中的JavaScript合作。)
提高对点亮组件的响应能力
现在,让我们从响应性方面迈出下一步,并使LIT的名称变量交互式。我们将添加一个输入,使我们能够更改名称3——Aninput组件和模板中显示的名称之间的双向绑定。 LIT使它们保持同步。
以下代码仅包含已更改的有意义的部分:
render(){return html` div input type=\’text\’.value=$ {this.name} @input=$ {this._handlenameInput}占位符=\’type a type a name .\’ /phello,phello,span span $ {this.name} /span! /p /div`; } _handlenameInput(event: event){const inputElement=event.target as htmlinputelement; this.name=inputelement.value; }此处的功能与上一个示例相同,但是现在我们拥有一个输入元素和一个处理函数。输入是标准HTML类型文本。它也是标准值属性,但其前缀是LIT的点运算符。点运算符将输入绑定到$ {this.name},这是使输入值对该变量反应的神奇组件。点运算符告诉点亮,您需要该值的实时JavaScript属性,而不是静态值。这样可以确保LIT可以使输入保持最新,并对值进行任何程序化更改。
@Input属性允许我们将更改处理程序指向我们的_handlenameInput。该函数本身使用标准DOM操作来检索输入元素的值,然后将其分配给.NAME变量。那是双向绑定的另一侧。当用户更改输入中的值时,处理程序会更新此.NAME。 lit可确保无论何处出现。名称都会有一个新的值。
在点亮中使用内部组件状态
这正是我们根据开关的——条件渲染所需的。要实际切换值,我们可以添加一个按钮:
$ {this._showsecretMessage? html` p class=\’有条件的文本这是秘密消息! /p`:\’\’/*如果false * /}此按钮代码使用状态变量有条件地显示适当的标签,则无需渲染。这是@Click处理程序的外观:
_toggleSecretMessage(){this.__showsecretMessage=!this._showsecretmessage;}在这里,我们只是交换状态变量的值,并根据三元显示屏在视图中显示了变化。现在,我们有一个可以显示和隐藏的面板。
渲染点亮
现在,让我们看一下点亮汇集的能力。首先,我们将创建霍比特人列表:
@property({type: array})hobbits=[\’frodo baggins\’,\’samwise gamgee\’,\’merry brandybuck\’,\’pippin tover\’];我们在这里而不是状态使用属性,因为我们可以从父级设置此值。接下来,我们想展示我们的霍比特人:
H4奖学金的霍比特人: /h4 $ {this.hobbits this.hobbits.length 0? html`ul $ {this.hobbits.map((((hobbitname))=html`li $ {hobbitname} /li`)} /ul ul`: html` p(在此阵容中列出了没有霍布斯!) /p`} /p`}
如果霍比特人为空,我们会再次使用三元条件操作员显示消息。通过我们的默认数据,我们显示了最著名的霍比特人列表(Bilbo除外)。主要工作是通过在此.hobbits变量上使用地图功能运算符完成的。这使我们可以通过LIT的HTML功能移动每个元素并输出适当的列表项目标签。
使用点亮来拨打API
现在,让我们从中世界切换到Westeros,然后从远程API加载一些字符数据。
首先,我们将创建一个内部状态变量来管理GET承诺:
@State()私有_CharacterDataPromise: Promise Unknown;接下来,我们将实现一个构造函数,因为当组件首次加载时,我们需要做某事。在这种情况下,我们正在加载数据:
constructor(){super(); this._characterdatapromise=this._fetchcharacterdata(); }在这里,我们调用_fetchcharacterdata函数:
private async _fetchCharacterData(){const apiurl=\’3https://www.anapioficeandfire.com/api/characters?page=1pageSize=10\’;尝试{const响应=等待提取(apiurl); if(!wenspy.ok){抛出新的错误(`API请求失败了STATUS: $ {RESSIONS.STATUS}`); } const json: array {name: string,culture: string,born: string,aleases: string []}=等待响应响应; json(); if(json json.length 0){const artarneTemplates=json.map(((char)={const displayName=char.name ||(char.aliases char.aliases [0])||\’unnumed contrace\’; return return html` html` html` li fornd strong $ {displayname} /strong $ { $ {char.culture} /span`:\’} $ {char.born?返回html` ul $ {pramentemplates} /ul`; } else {返回在这些土地中找到的html` pno字符! /p`; }} catch(error){console.error(\’无法获取权力的游戏字符data:\’,错误);返回Promise.resolve(html` p class=\’error-message\’无法召唤字符: $ {error.message} /p`); }}代码主要是标准JavaScript,除了我们使用LIT\’SHTML函数返回GET结果中每种情况的适当模板标签。但是请注意,实际_fetchcharacterdata功能返回承诺。如果发生错误,它明确地执行此操作,但是在所有情况下,异步函数都会返回承诺。另请注意,分辨方法与HTML函数调用的内容一起调用。
我们在此之前保存了此诺言的手柄。_CharacterDataPromise。保存的句柄使我们能够在主组件模板中智能等待此调用的结果:
从七个王国(或therebouts): /h4 $ {直到(this._characterdatapromise,html` html` p class=\’loading-message\’s for News for News(加载字符.)。
同样,我们使用直至()函数等待应许的最终结果。请注意,第二个参数显示了正在等待的内容。
综上所述
原创文章,作者:匿名,如若转载,请注明出处:https://www.xinyuspace.com/21877.html
用户评论
枫无痕
这个 Lit 简介太棒了!对于像我这样的新手来说非常实用,快速入门一个基于标准的反应库真是太好了,可以让我专注于功能开发而不是框架学习。太感谢作者分享这份宝贵资源了!
有12位网友表示赞同!
惯例
我对这套 Lit 非常有兴趣,一直在寻找一个简单易用的 React 库,希望这个 Lit 简介能给我详细介绍一下它的使用方法和优势,以及与其他常用的反应库的比较。
有5位网友表示赞同!
咆哮
讲道理,这种基于标准的反应库还是挺吸引人的,感觉代码更规范,维护起来更容易。不过我也有点担心性能问题,标准化会不会牺牲一些效率呢?
有13位网友表示赞同!
花菲
看了介绍,Lit 确实很适合用于小型项目或快速原型开发,轻量级、易于学习。但我对于复杂项目的应用场景还有疑问,不知道它是否足够强大可以应对大型系统的需求?
有16位网友表示赞同!
绝版女子
说 Lit 基于标准的反应库,那肯定要看一看它的文档质量吧?希望简介里能提到文档的链接,方便我深入了解这个框架。
有9位网友表示赞同!
爱到伤肺i
对于已经熟悉 React 的开发者来说,Lit 的区别和优势确实不大。除非项目有明确的需求使用基于标准的框架,否则学习 Lit 的性价比不高。不如继续深耕 React 领域更稳妥些吧!
有15位网友表示赞同!
心安i
虽然简介中提到了 Lit 可以跨平台应用,但我更关注它是如何解决不同平台之间组件渲染和差异化的挑战?这个方面需要更多的解释和具体的案例展示。
有14位网友表示赞同!
全网暗恋者
基于React的开源库越来越多了,想要找到一个真正优秀的项目确实不容易。希望Lit能够做到既有性能优势又易于学习应用,这样它才更能吸引开发者!
有20位网友表示赞同!
权诈
我对 Lit 的学习成本比较感兴趣,简介里提到了它是标准化的反应库,会不会因为这个缘故变得更加复杂?希望官方提供一些上手教程或者指南,方便初学者快速入门。
有18位网友表示赞同!
屌国女农
我之前尝试过一些基于标准的反应库,总觉得缺乏生态和工具支持,很难找到合适的插件或扩展。希望 Lit 能够解决这个问题,打造一个完善的社区生态系统!
有17位网友表示赞同!
怅惘
Lit 的命名方式有点像 Flutter?不知道这之间有没有什么关联或者影响?感觉命名有些重复了,希望能有更独特的名字才能更好地记忆。
有7位网友表示赞同!
莫名的青春
这篇简介写的不错!简洁明了地介绍了 Lit 的基本概念和优势,让我对这个框架有了初步的了解。期待后续能看到更多深入的内容讲解,比如它的架构设计、性能表现等等…
有9位网友表示赞同!
清原
虽然我还在使用 React 开发项目,但一直关注着新兴的技术趋势。Lit 这个基于标准的反应库很有潜力,或许可以作为未来的替代方案。我会持续关注它的发展动态!
有17位网友表示赞同!
千城暮雪
希望 Lit 不仅局限于 Web 应用,能够扩展到移动端、桌面端等平台,实现真正的跨平台开发体验!
有5位网友表示赞同!
孤者何惧
这个项目看起来很有意思,我一直在探索如何使用更现代化的技术来构建 Web 应用,Lit 很可能成为我的选择。我会很快上手试试!
有13位网友表示赞同!
花花世界总是那么虚伪﹌
期待 Lit 的开源版本发布,这样就能更加深入地了解它的架构设计和代码实现逻辑,并根据实际需求进行定制和优化!
有8位网友表示赞同!
Edinburgh°南空
我比较关注 Lit 在大型项目的应用场景,希望它能够提供更完善的模块化设计和工具支持,以应对复杂项目的开发挑战。
有14位网友表示赞同!