jquery定义数组-JQuery 如何循环出数组元素

2023-08-21 0 1,804 百度已收录

让我们结合具体的代码示例来向您介绍 JQuery 循环输出数组元素的技术。

代码示例如下:

JQuery 循环遍历输出数组元素示例

$(document).ready(function(){

var arr= [“苹果”、“香蕉”、“橙子”、“芒果”、“菠萝”];

$.each(arr,function(indexjquery定义数组, value){

$(“#result”).append(index + “: ” + value + '');

});

jquery定义数组-JQuery 如何循环出数组元素

});

$.each() 方法中有两个参数,第一个参数是要循环的字段的名称jquery定义数组,第二个参数是一个技巧。

jquery定义数组-JQuery 如何循环出数组元素

这里我们定义一个arr字段,然后用这种方式为每次反弹传递一个字段索引和对应的字段值,然后复制append()方法输出的指定字段值的结果。

结果如下:

注意:append() 方法将指定的内容插入所选元素的末尾(仍在里面),我们可以使用此函数来附加内容。

each() 函数封装了一个非常强大的遍历函数,它可以遍历一维链表、多维链表、DOM、JSON 等。each() 方法指定为每个匹配元素运行的函数。

本文讲的是JQuery循环输出数组元素值的具体方式,通俗易懂,希望对有需要的同事有所帮助!

‍♀️小编重点:本文为蚂蚁集团后端工程师的分享。 作者提出了一种小程序开发方法,可以让你以 jQuery 函数式编程风格打开你最好的朋友程序。 欢迎查看。

前言

目前,在小程序的开发中,React技术栈是主流,大多数人都在使用“类类组件”来开发最好的朋友程序,即通过声明一个对象并使用各种生命体来开发组件循环中,最典型的是支付宝AppX框架,陌陌小程序也称为原生小程序。 事实上,他们中的一些人使用“Hooks”来开发组件,例如Remix等。

类组件和Hooks组件有其相同点和不同点。

Class组件的问题在于,组件之间的状态逻辑很难复用,复杂的组件显得难以理解,Class也难以理解。 这是React官网的原话。 相信有过编写Classs经验的人都会知道。

Hooks的问题在于上手门槛较高。 你必须对React和Hooks有更深入的了解jquery 函数,否则很容易写出bug。

回想一下我们用jQuery玩牌九的时候,是不是很简单呢? 是不是很简单呢? 没必要去理解那么多被创造的概念,回归最原始的解决问题的编程。

本文提出了一种小程序开发方法,允许您以 jQuery 函数式编程风格开发最好的朋友程序。

jquery定义数组-JQuery 如何循环出数组元素

先观看演示

来电者代码:

前面是一个典型的交互组件:弹窗输入框组件:

1、我们通过this.hook(componentName)获取输入框组件实例。

2、输入框组件提供show()函数,用于显示弹窗。

3. 用户编辑修改输入框中的内容,然后单击完成按钮。

4、show()函数同步返回输入框的值。 对于输入框组件,我们只关心它的返回值。

5、最后我们通过setData将用户输入的值显示在页面上,然后通过close()关闭弹窗。

可以看到,里面的代码调用了一个输入框组件,就像jQuery组件一样,可以通过函数来​​完成。

那么我的AXML应该怎么写呢? 很简单,AXML只需要一行:

只需在第10行声明组件名称componentName,然后就可以通过hook(componentName)获取该组件的实例。 任何功能组件只需一行即可完成。

那么我又要问了,这个inputPopup组件是怎么写的呢? 很简单,小程序中组件怎么写就是怎么写,我们看代码:

组件的代码有点多,没关系,我们来分析一下:

这是标准的小程序编写方法,无需创建新的句型和DSL,你应该熟悉它。

我们先来看看条目。 组件提供的show和close方法在install生命周期中返回。 install生命周期在小程序初始化时执行,在整个小程序应用周期中只执行一次。 它应该返回一个对象,这个对象就是组件实例的值,也就是说哪些值是组件返回的,哪些值是调用者接收的。

我们的组件返回两个函数show和close,因此我们可以通过input.show来调用它。

那么当我调用 input.show 时会发生什么? 很简单,这是一个 JavaScript 函数调用。 可以看到show和close是组件的两个属性,和小程序的方法一模一样。 可以在函数上通过this访问实例,并通过setData触发视图响应。

你现在明白了么? 页面和组件之间的通信不再是 React Props,也不是 ReactHooks,而是原生 JavaScript 函数调用。

这是小程序函数调用组件。

jquery定义数组-JQuery 如何循环出数组元素

这是什么意思?

什么是功能调用组件? 它本质上是一种设计模式,就像Class组件和ReactHooks一样,你也可以将其理解为组件之间的另一种通信解决方案。

正如上面关于 ReactHooks 的描述,请记住对组件的函数调用是:

与类组件和ReactHooks相比,它有什么优势?

如果你仔细阅读前面的demo,你会发现它的优点。 它最初是为了解决Class和ReactHooks的问题:Class组件编写繁琐,维护困难。 ReactHooks 的入门门槛较高,且较​​为复杂。

我们来分析一下函数式组件是如何解决前面的问题的:

先说一下和Class的对比

Class组件最大的问题就是各种生命周期,其中最麻烦的就是componentDidUpdate。 它使复杂的组件难以阅读和维护。 想象一下,当你编写一个复杂的交互组件时,它接受N个props选项,然后在componentDidUpdate上一堆比较代码,只是为了找出哪些Props发生了变化。

我曾经维护过一个h5数字按钮组件。 当其中一个 Props 发生变化时,就像雪花引起雪崩一样。 你不知道下一个状态会是什么。

componentDidUpdate 的另一个致命问题是菜鸟经常编写出无限循环的代码。

功能组件如何解决?

既然componentDidUpdate的设计模式让问题变得复杂,我们就不要使用它,废除它。 所以功能组件上的这些循环没有生命周期。 它和组件之间的通信是通过原生 JavaScript 函数调用,使用函数输入参数而不是 Props。 我们对函数调用已经非常熟悉了,它的行为很清晰,也让我们的代码执行过程显得可追随。

函数输入参数的另一个用途是:它保持我们的数据干净。

想象一下,你的组件有 10 个 Prop 来控制行为,你必须在数据上有 10 个额外的数组,这是不必要的,因为它们只是临时变量。

另外,与ReactHooks相比

ReactHooks杀死了Class和生命周期jquery 函数,也杀死了componentDidUpdate。 它让组件完全由 JavaScript 函数编译而成,函数输入参数为 Props,看起来和我们刚才提到的函数调用组件是一样的。

但它选择了重复执行的方式来解决Props更新的问题,也就是说我们的Hooks组件又回到了无限循环执行的噩梦。 重复执行对于 Props 来说是正确的,因为我们的组件应该始终渲染最新的 props。 但其他应保持引用的变量无法重新创建。

后来为了解决重复执行导致的变量无法保持引用的问题,引入了useState、useCallback等。正是这种东西,让我们的Hooks组件变得难以理解。 一定要了解Hooks的原理,否则很容易写出bug或者有性能问题的组件。

功能组件如何解决?

jquery定义数组-JQuery 如何循环出数组元素

与 ReactHooks 一样,我们选择使用函数调用而不是 componentDidUpdate,使用函数参数而不是 Props。 但在如何更新Props方面,功能组件选择使用额外的函数调用来解决重复调用的问题。

为什么要这样设计呢? Class的优点就是有实例状态,可以让我们非常方便的保存和读取需要引用的变量。 为了弥补 componentDidUpdate 带来的问题,我们将 Propsdiff 触发的调用替换为清晰的函数调用。

只需一个小小的改动,函数式组件就结合了 Class 和 Hooks 的优点。 你可能会说,这是四个不同的东西,上面都有Class和Hooks的思想,那么你到底是什么?

它是函数调用组件。 到底有没有用,还需要实践来证明。

至少,它让我可以开发复杂的交互式组件,而不必浪费时间调试组件之间的通信问题,也不必浪费时间在如何管理 Props 和 diff 上。 我只需要考虑哪部分代码应该放在组件中。 虽然一年后,我回来看复杂交互的组件代码,能够快速清晰地梳理出它的执行流程。

BB再多说两句

多说几句:函数调用组件完全构建在原生小程序之上,它在运行时运行,而不是构建时运行,不破坏小程序现有的规则,不依赖于任何框架,它可以与Native小程序共享。

BB最后两句

功能组件的灵感来自于实际业务。 他们曾经解决小程序中大量复杂的交互。 很多交互涉及到RPC请求,还涉及到缓存、并发、时序问题,降低了小程序的开发效率。 难度,尤其是涉及到小程序中输入框的,相信深入研究过小程序输入框的人都被它毁掉了。 每个页面都会重复使用很多交互。 自然,我们希望将它作为一个组件进行复用,但是编写 Class 组件确实让我们很累。 一是项目时间紧,而且基本倒序,二是复杂。 和可维护性。

所以我们认为对于一个有交互的组件来说,它的行为触发一定是明确的,就像我们要调用一个模块或者一个系统的时候,它提供了一个API和输入参数,然后我们调用它,它处理并返回结果对我们来说。 这是一个函数调用。 UI交互必须由某个clear事件触发,可以是点击事件、长按事件,clear事件触发clear函数调用,交互结果在函数上进行处理。 声明式思维适用于没有交互的UI组件,或者具有清晰可执行的交互结果的组件。 如果交互结果可能回滚,那么声明式组件如何表明该语句被撤销呢?

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 jquery jquery定义数组-JQuery 如何循环出数组元素 https://www.wkzy.net/game/132457.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务