当前位置:

小程序开发过程中遇到的问题(小程序开发过程中遇到的问题及对策)

我是一个看客 2024-02-20 965 0

本篇文章给大家谈谈小程序开发过程中遇到的问题,以及小程序开发过程中遇到的问题及对策对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

  • 1、小程序开发过程中,作为开发者你遇到最大的挑战是什么?
  • 2、小程序编译的时候有报错登录之后就没有了
  • 3、小程序开发注意事项
  • 4、微信小程序开发中遇到的坑及解决办法
  • 5、小程序开发经验总结

小程序开发过程中,作为开发者你遇到最大的挑战是什么?

做小程序开发大概半年了,我来说说体会吧。

第一:模拟器显示与真机不一致问题,在模拟器上一切正常,到了真机上各种问题。

第二:基础库升级,它基础库说升级就升级,让你措手不及,印象最深的两个点是获取用户信息和关注公众号问题。尤其是关注公众号问题,由于业务需要让用户绑定公众号,又一次审核还被拒,原因就是“诱导关注”现在好了,官方直接给你提供组件让你去关注公众号,当时看到这个心里一万头羊驼在奔腾。

第三:官方的IDE真的不好用,用起来真心累,现在我使用的是VSCODE + TypeScript进行开发。

希望能帮到题主,祝新年快乐~

小程序编译的时候有报错登录之后就没有了

小程序开发过程中会出现错误,本文总结了一些微信小程序开发常见的错误以及解决方法,能帮助初学者少走弯路

不管是什么样的开发语言都有一套规则,不管是开发网页,APP还是小程序,开发过程中也都会出现错误,作为开发者,出现bug是一件很打击自信同时影响心情的事,出现开发错误就意味着开发者不得不花费额外的时间去找到问题解决。本文总结了一些微信小程序开发常见的错误以及解决方法,能帮助初学者少走弯路,避免类似的错误。

1:出现“Expecting ‘String,‘Number,‘NULL,‘True....’”’’的错误提示。

微信小程序开发常见错误解决方法

解决方法:这个错误的原因在于index.json(对应页面的json文件 )里没有加入{ }。即使json文件里没有任何内容,也需要加入一个{ },作为默认代码。此外,json文件不允许出现注释代码,如果有注释的代码,同样会报这个错误。

2:出现“脚本错误或者未正确调用Page()”的错误提示。

微信小程序开发常见错误解决方法

解决方法:出现这个错误的原因通常是因为index.js (即对应页面的js文件)里,没有调用Page方法。即使js文件里没有任何代码,也需要在js里添加一个空的 Page({ })。注意Page的P要大写。

3: 出现“ Failed to load image xxxxx:the server responded with a status of 404 (HTTP/1.1 404 Not Found) From server 127.0.0.1”

解决方法:出现这种错误,通常是由于图片的路径不对而引起的。若是外网的图片,就是你外网的图片url错了(因为它没有相对和绝对的路径概念)。现在只说说本地的图片路径问题。有这么一种情况,如果图片路径被写在一个A.js文件里,而B.js文件引用了A.js,此时图片的路径必须是相对于B.js的相对路径。建议最好在公共的js文件里使用绝对路径。

4:出现警告信息“Now you can provide attr wx:keyfor a wx:for to improve performance”的问题。

微信小程序开发常见错误解决方法

解决方法:首先,这只是一个警告信息,不是错误信息,不理他不会对程序运行有任何的影响。官方文档原话:如不提供 wx:key,会报一个 warning, 如果明确知道该列表是静态,或者不必关注其顺序,可以选择忽略。如果你一定想去掉这个警告,可以在wx:for的组件属性里增加一个 wx:key=unique,unique请替换成数据绑定列表里的任意一个字段的字段名,比如文章列表数据中的字段“postId”,即wx:key=postId。不建议使用wx:key=*this。其实wx:key用来对列表渲染的数据指定一个主键”,以加快列表渲染的速度。

5:小程序如何快速创建页面文件?

解决方法:微信小程序官方文档并没有给出一次创建四种类型页面文件的方法。但在实际开发过程中有人发现了快速创建四个文件的方法。步骤:在app.json文件下pages数组里,添加一个页面的路径,如果这个路径指向的是一个不存在的文件,那么MINA框架会自动创建这个页面的四个文件。我们可以试一下,在app.json文件的pages数组里添加一项 “pages/demo/demo”,然后保存项目,用这种方式创建文件不仅快捷,而且页面文件会自动添加一些默认代码,防止出错。

小程序开发注意事项

1. 开发小程序时,每个页面一定要在app.json文件中注册,页面文件夹和其包含的四个文件的名字要保持一致。

2. 小程序发起的都是HTTPS网络请求,在开发调试的过程中可以不校验协议和TLS版本,但在实际上线后必须进行HTTPS协议通信。

3. 小程序可以进行组件化开发以及数据绑定,所有对于DOM的操作都是基于数据驱动的,并没有直接进行DOM操作的做法,换言之,小程序内没有document对象,原生js和jQuery里的DOM操作思维要舍弃掉。

4. 小程序的网络请求wx.request()是不自带Cookies的,这和浏览器上的网络请求不同,因此基于Cookies实现的会话管理不适用于小程序。

5. 小程序的脚本文件中,内置对象是page,而非传统浏览器里的window,因此所有基于window对象来写的库(例如jQuery)都不适用于小程序。

6. 小程序提供模板功能,模板拥有自己的作用域,它只能使用从data属性传入的数据。

7. 每一个页面文件夹下的.json文件是用来写配置项的,如果该页面无需添加相关配置,.json文件也要写上一对大括号(“{ }”),否则会报错。

8. 在同一个tab里的页面可以跳转,并且允许携带参数。不同tab的页面之间无法跳转,使用wx.navigateTo()接口会报错。同时,tab之间的跳转可以用wx.switchTab()实现,但是路径后不能带参数。

9. 脚本文件里data的数据,在更新的时候要通过this.setData()方法来更新,而不能直接用“=”来做。

10. 在组件标签里,可以通过“data-属性值”的方式绑定我们需要的数据,然后在事件内置event对象里进行获取。

11. 小程序里也存在事件的冒泡,具体的冒泡事件可以参考官方文档,如果希望事件向上冒泡,则使用bind来绑定事件,若希望阻止事件冒泡,就使用catch来进行事件绑定。

12. 小程序支持文件引用,有import和include两种方式,import有作用域,也就是引入的目标文件里import的模板不会被引入;而include等于是将目标文件除 以外的整个代码进行引入。

13. wx.login()和wx.getUserInfo()是两个独立的接口,前者可以实现用户登录,这个过程是悄无声息的,不需要用户授权,登录后可以拿到用户的openid和session_key;而wx.getUserInfo()可以拿到用户的具体信息,这个过程需要获得用户的授权,开发时也必须考虑用户拒绝授权的场景。

14. 目前小程序可以分享给微信好友和微信群,但小程序默认是没有这个功能的,只有在Page里定义了onShareAppMessage事件处理函数,点击小程序右上角才可以看到分享按钮。

微信小程序开发中遇到的坑及解决办法

taro单独为某个项目切换taro版本环境

单独为某一个项目升级#这样做的好处是全局的 Taro 版本还是 1.x 的,多个项目间的依赖不冲突,其余项目依然可以用旧版本开发。 如果你的项目里没有安装 Taro CLI,你需要先装一个:

# 如果你使用 NPM

$ npm install --save-dev @tarojs/cli@2.x

# 如果你使用 Yarn

$ yarn add -D @tarojs/cli@2.x

echarts在小程序中滑动卡顿

由于微信小程序中,echarts的层级最高,无论设置多大层级也无法遮住echarts。而且小程序中好像只能用echarts吧。所以为了解决这个bug,我只能委屈求全了。打开ec-canvas.wxml文件,将touchStart、touchMove和touchEnd去掉了,直接删除就好啦。这三个事件应该是做缩放的吧,我们也没有这个缩放的需求。所以就去掉了。虽然暂时满足的需求,还是没有真正的解决问题。

原:

bindinit="init"

bindtouchstart="{{ ec.disableTouch ? '' : 'touchStart' }}"

bindtouchmove="{{ ec.disableTouch ? '' : 'touchMove' }}"

bindtouchend="{{ ec.disableTouch ? '' : 'touchEnd' }}"

现:

bindinit="init"

echarts在小程序中无法跟随页面滑动

在卡顿问题中能与echarts交互少的,可以直接使用图片代替cannvas,即在echarts渲染完毕后将它替换为一张图片。

如果我更新了数据,那么就重新放出echarts,等它渲染完毕后,再次替换为一张图片。

chart.on('finished', () = {

getCurrentInstance().page.selectComponent(id).canvasToTempFilePath({

success: res = {

console.log('res.tempFilePath====',res.tempFilePath)

this.setState({

echartImgSrc: res.tempFilePath

      })

},

    fail: res =console.log('转换图片失败', res)

});

})

render:

this.state.echartImgSrc =='' ?

  ref={this.refChart}

id={this.state.id}

canvas-id="mychart-area"

  force-use-old-canvas="true"

  ec={this.state.ec}

/

:

CoverImage src={this.state.echartImgSrc}/CoverImage

小程序开发经验总结

最近一直在做小程序,工作中也遇到了一些问题,踩了一些坑,所以想着写篇文章记录下来,并借此将小程序开发的相关知识进行梳理,方便以后参考,也为刚刚接触小程序的人提供一些思路方法,互相学习,共同进步。

1、微信小程序的目录结构及配置说明

app.json是小程序的全局配置文件,所有配置项key必须使用 双引号括起来 ,value值为字符串类型的也必须使用双引号, 不支持单引号 。

1.1 pages

pages选项是必须配置的。该配置项注册了小程序所有页面的地址,其中每一项都是页面的 路径+文件名 。每一个页面都是由.json、.js、.wxml、.wxss四个文件组成,并且 四个文件的名字必须要一致 。

1.2   tabBar

tabBar 配置项指定 tab 栏的表现,以及 tab 切换时显示的对应页面。其中 list 接受一个数组,只能配置最少 2 个、最多 5 个 tab

1.3 usingComponents

使用自定义组件或者插件提供的组件前,必须先在这里声明

2、开发微信小程序遇到的问题及解决办法

2.1 双向绑定

微信小程序不支持通过v-model的方式实现自动双向绑定,需要给表单元素通过绑定事件,并使用this.setData来赋值实现。

2.2 computed和watch

微信小程序默认是不支持computed和watch的,如需要使用这两项功能,需要安装miniprogram-computed ,安装方法见 官方文档

2.3 对象赋值

如果给对象的属性赋值,可以使用this.setData({'obj.key':value})来赋值,但是如果给某个属性名是变量的属性赋值,通过这种方法是会报错的,经过多次尝试,发现使用如下的方式赋值成功。

let newObj = `obj.${key}`

this.setData({

[newObj]: value

})

2.4 scroll-view

当页面存在弹框容器,并且弹框里的内容是需要滚动条滚动展示时,如果弹框下面那层的容器使用view元素的话,会导致滚动弹框内容时,同时会触发弹框下面那层的页面容器也会一起滚动,解决此问题可以将弹框下面的容器使用scroll-view元素替代view元素

3、小程序测试和发布

由于服务器域名request合法域名每个月 只能修改5次 ,因此在本地开发小程序时,需要在微信调试工具中设置不校验合法域名。等小程序上线前再一次性将所有域名添加到小程序管理后台。

以上便是此次小程序开发中积累的一些经验,希望能给刚刚接触小程序的人提供一些思路方法,在以后的开发中,如果遇到新的问题,继续更新文档......

小程序开发过程中遇到的问题的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于小程序开发过程中遇到的问题及对策、小程序开发过程中遇到的问题的信息别忘了在本站进行查找喔。

小程序开发过程中遇到的问题