当前位置: 首页 产品详细

jquery开发微信小程序

专业小程序设计开发——助力新电商新零售

电话+V:192606-48052,欢迎咨询jquery开发微信小程序,[小程序设计与开发],[小程序投流与推广],[小程序后台搭建],[小程序整套源码打包],[为个体及小微企业助力],[电商新零售模式],[小程序运营推广及维护]

一、微信小程序的优化技巧有哪些,优化方法

1、附近的小程序广告

附近的小程序是微信开放的关键流量入口,同时开放了广告投放渠道。广告位是在附近小程序的第三行,点击即可打开对应的小程序。

2、聊天小程序

把小程序任何一个页面分享到群,在群聊天信息页面可以查看10个被分享到群的小程序,方便群成员在有需求时方便快捷找到你的小程序,这也是小程序打通微信社群的一大妙招。

3、小程序商店

通过付费或其他方式将小程序投放至小程序商店,起到一定的宣传推广效果。

4、地推

对于部分小程序而言,地推或许是最贴近用户场景的推广方式,线下以小程序码的方式,通过宣传物料等推广小程序。诸如:餐饮,鲜花,美容,健身....等等线下门店。好处在于,见效快,现场快速转化。

5、公众号资料页绑定相关小程序

小程序和公众号进行关联,当用户关注你的公众号时,就能看到位于显眼位置的相关小程序,点击可直接跳转到小程序。

6、公众号文章插入小程序名片

「公众号+小程序」就是在自己的公众号文章里面插入小程序卡片,这是一个长期的过程,前期效果取决于公众号本身的粉丝留存量。

7、公众号菜单关联小程序

二、微信小程序可以支持jquery吗?

微信小程序不支持jquery。

小程序的逻辑层和渲染层是分开的,逻辑层运行在JSCore中,并没有一个完整浏览器对象,因而缺少相关的DOMAPI和BOMAPI。这一区别导致了前端开发非常熟悉的一些库,例如jQuery、Zepto等,在小程序中是无法运行的。

同时JSCore的环境同NodeJS环境也是不尽相同,所以一些NPM的包在小程序中也是无法运行的。

网页开发渲染线程和脚本线程是互斥的,这也是为什么长时间的脚本运行可能会导致页面失去响应,而在小程序中,二者是分开的,分别运行在不同的线程中。网页开发者可以使用到各种浏览器暴露出来的DOMAPI,进行DOM选中和操作。

扩展资料

小程序的主要开发语言是JavaScript,小程序的开发同普通的网页开发相比有很大的相似性。对于前端开发者而言,从网页开发迁移到小程序的开发成本并不高,但是二者还是有些许区别的。

jQuery就是javascript的一个库,把我们常用的一些功能进行了封装,方便我们来调用,提高开发效率。极大地简化了JavaScript编程。

网页开发者需要面对的环境是各式各样的浏览器,PC端需要面对IE、Chrome、QQ浏览器等,在移动端需要面对Safari、Chrome以及iOS、Android系统中的各式WebView。而小程序开发过程中需要面对的是两大操作系统iOS和Android的微信客户端,以及用于辅助开发的小程序开发者工具,小程序中三大运行环境也是有所区别的。

参考资料:微信官方文档-小程序与普通网页开发的区别

像jQuery一样通过函数开发和调用小程序组件

2022-04-0106:25·前端晚间课文章来自公众号@支付宝体验科技,
https://mp.weixin.qq.com/s/bZDOvmAFs74GCDLb4Uiajw

前言目前小程序开发中,React技术栈是主流,大部分人都在使用“类Class组件”开发小程序,即通过声明一个对象,使用各种生命周期来开发一个组件,最典型的是支付宝AppX框架以及微信小程序,我们也叫原生小程序。当然,也有部分是使用“Hooks”开发组件的,比如Remix等。

Class组件和Hooks组件各有优缺点。

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

Hooks的问题在于上手门槛高了,你必须对React和Hooks有更深刻的理解,否则很容易写出bug

遥想当初我们使用jQuery一把梭哈的时候,是不是很简单?是不是很单纯?不用理解那么多的造出来的概念,回归到最原始的以解决问题为目标的编程。

本文提出一种小程序开发方法,可以让你以jQuery函数式编程风格开发小程序。


先看demo,时长00:33

调用方代码:

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

1.我们通过this.hook(componentName)拿到输入框组件实例。2.输入框组件提供一个show()函数,用于显示弹窗。

3.用户在输入框里面编辑、修改内容,然后点击完成按钮。

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

5.最后我们把用户输入的值通过setData显示在页面上,再通过close()方法关闭弹窗。

可以看到,上面的代码调用一个输入框组件,就和jQuery组件一样,通过函数就能完成。

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

只需要在第10行声明一下组件的名称componentName就行了,然后你就可以通过hook(componentName)拿到这个组件的实例了。任何函数式组件都只需要一行就可以搞定。

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

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

这是一个标准的小程序写法,没有创造新的语法和DSL,大家应该很熟悉。

我们先来看入口,组件提供的showclose方法就是在install生命周期里面返回的。install生命周期在小程序初始化时执行,整个小程序应用周期内只执行一次,它应该返回一个对象,这个对象就是组件实例的值,也就是说组件返回什么值,调用方拿到的就是什么值。

我们的组件返回了show和close2个函数,所以我们可以通过input.show来调用它。

那么当我调用input.show时发生了什么呢?很简单,它就是JavaScript的函数调用。可以看到show和close就是组件的2个属性,它和小程序的methods完全一样,你可以在函数里面通过this访问实例,通过setData触发视图响应。

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

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


这意味着什么?函数式调用组件是什么东西?它本质上是一种设计模式,就和Class组件以及ReactHooks一样,你也可以理解为它是另一种组件间通信方案。

正如ReactHooks里面介绍的一样,请记住函数式调用组件是:

完全可选的。你无需重写任何已有代码就可以在一些组件中尝试函数式组件。100%向后兼容的。函数式组件不包含任何破坏性改动。它没有创造新的语法和DSL,它完全运行在原生小程序之上。现在可用。函数式组件已经发布,并且已经在线上运行1年多了。
它和Class组件以及ReactHooks有什么优点?

如果你认真的看了上面的demo,你就会发现它的优点。它在设计之初,就是为了解决Class和ReactHooks的问题:Class组件写起来麻烦且很难维护。ReactHooks上手门槛高且更复杂。

下面我们分析下函数式组件如何解决上面的问题:

先说和Class对比Class组件最大的问题在于各种生命周期,其中最令人头疼的是componentDidUpdate。它让复杂组件变得无法阅读和维护,试想一下,当你编写一个复杂交互的组件时,它接受N个Props可选项,然后在componentDidUpdate里面一堆的比较代码,就为了找出哪个Props变更了。

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

componentDidUpdate另一个致命的问题是:新手经常会写出死循环的代码。

函数式组件如何解决?既然componentDidUpdate的设计模式让问题变得复杂,那我们就不用它,把它干掉。所以函数式组件里面没有这种循环的生命周期。它和组件之间的通信就是通过原生的JavaScript函数调用,使用函数入参来代替Props。函数调用我们已经非常熟悉了,它的行为是明确的,它让我们的代码执行流程变得有章可循。

函数入参带来的另一个好处是:它让我们的data保持干净。

试想一下你的组件有10个Props来控制行为,你的data里面就必须有10个额外的字段,这本来是没必要的,因为它们仅仅是临时变量。

再说和ReactHooks对比ReactHooks干掉了Class和生命周期,也干掉了componentDidUpdate,它让组件完全由JavaScript函数编写,函数入参就是Props,这看起来和我们刚刚说的函数式调用组件是一样的。

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

然后为了解决重复执行带来的变量无法保持引用的问题,又带来了useStateuseCallback等,就是这些东西让我们的Hooks组件变得以理解。你必须要理解Hooks的原理,否则很容易写出bug或者存在性能问题的组件。

函数式组件如何解决?和ReactHooks一样,我们选择用函数调用来代替componentDidUpdate,用函数入参来代替Props。但在如何更新Props上,函数式组件选择了使用额外的函数调用来解决重复调用的问题。

为什么要这样设计呢?Class的好处是拥有实例状态,它可以很方便的让我们保存和读取需要引用的变量,为了弥补componentDidUpdate带来的问题,我们以明确的函数调用来替换由Propsdiff触发的调用。

仅仅是一个微小的改动,函数式组件让Class和Hooks的优点结合在一起。你可能会说这是四不像,又有Class又有Hooks的思想在里面,那你这个到底是什么东西。

它就是函数式调用组件。实际好不好用,还得在实践中证明。

至少,它让我在开发复杂交互组件时,不必浪费时间在调试组件间通信问题,也不必浪费时间在如何管理Props以及diff上,我只要考虑哪些部分代码应该放在组件里。即使时隔一年,我再回过来看复杂交互的组件代码,我也能很快清晰的整理出它的执行流程。

再BB两句我再啰嗦几句:函数式调用组件完全是在原生小程序之上构建的,它运行在运行时,而不是构建时,它没有破坏小程序现有规则,也不依赖任何框架,它可以和原生小程序共用。

最后BB两句函数式组件灵感来源于真实业务中,当初是为了解决小程序中大量的复杂交互,很多交互都是带有RPC请求的,并且还涉及到缓存、并发、时序问题,这样增加了小程序开发难度,尤其是小程序中涉及到输入框的,相信深度研究过小程序输入框的都被它折磨过。这其中有大量的交互会复用在各个页面中,自然我们想把它作为一个组件复用,但写Class组件实在是让我们心力交瘁,一个是项目时间紧,基本倒排,另一个是复杂度和可维护性。

所以我们就想,一个带有交互的组件,它的行为触发一定是明确的,就好像我们想要调用一个模块或者一个系统时,它提供一个API,提供入参,然后我们调用它,它处理后返回结果给我们。这就是函数调用,UI交互一定是因为某一个明确的事件触发,可以是一个点击事件,一个长按事件,一个明确的事件触发一个明确的函数调用,函数里面处理交互的结果。声明式的思想适合不带交互的UI组件,或者是交互结果明确能执行的组件,如果遇到交互结果可能会被回滚的情况,声明式组件如何表示声明被撤销的情况呢?

【WINDRISES MINIPROGRAM PROMOTION】尊享直接对接老板

电话+V: 192606-48052

专注于小程序推广配套流程服务方案。为企业及个人客户提供了高性价比的运营方案,解决小微企业和个体拓展客户的问题

jquery开发微信小程序
发布人:13838711141 发布时间:2024-10-27