微信小程序开发总结基础配置、视图层、逻辑层自行阅读文档【微信小程序文档】[1]这里只说下我的经验总结,提醒微信小程序不能运行的程序在浏览器中,Dom不能运行,没有文档或窗口对象。每个页面路径最多有五层eg:A页面->B页面->C页面->D页面->E页面->(F页面是跳不出来的)注:不做重定向,重定向后的页面算是第一层,但是没有-return-button,也没有外部链接,所以只能使用app.json中配置的路由,编译时a标签会自动过滤掉wx:for循环渲染时,必须加上wx:key,否则会发出警告。使用进行x轴滚动时,必须设置height属性,否则开发工具会买,手机不习惯你。绑定,wx:key,wx:for-index,wx:for-item,直接绑定,不需要{{}},其他绑定必须在app.json中的页面中绑定{{}},最好根据配置层级顺序,否则可能跳不起来-view使用input时,最好在bindinput中动态设置值,否则Android会出问题。在设计视图元素单元时,最好让ui750px。开发的时候,ui多少px,你写多少rpx就OK了。原理,自己查文档,去页面传参Page({onLoad(opositions){//看看是不是你要的console.log(opositions.id)}})查看response每个页面都有一个Page实例,response由实例的setData方法触发,*直接给绑定的数据赋值,数据会发生变化,但是view不会渲染js文件letconfig={data:{}}Page(config)事件绑定wxml文件jsfileletconfig={data:{},tapHandler(){console.log('iamahandler')}}bindtap的绑定最终会解析成方法名,所以bindtap="tapHandler(parameter)”,会报错,----没有找到'tapHandler(parameter)'方法,幸好在执行事件绑定函数的时候,会传入一个参数,可以从parameter,id,data-set,这两个都可以用来绑定属性,name和class之类的属性不要去尝试找,没用的,没有通用的组件组件分为三个文件,wxml,js,csswxml文件定义了template模板,并导入到页面中,所以可以控制传入模板的datajs文件导出一个对象,通过require导入到页面中,并合并到Page实例化的配置对象中。lettempateConfig=require('url')letmergeConfig=require('url/wxTools.js')['mergeConfig']letconfig={data:{}}config=mergeConfig(config,templateConfig)Page(config)mergeConfigis自己定义的一个简单的对象合并函数,支持多层多对象合并Object.assign()方法在真实Android设备上运行报错,不能使用wxTools.js函数merge(con,mcon){for(varkeyinmcon){if(typeofmcon[key]=='object'&&con[key]){merge(con[key],mcon[key])}else{con[key]=mcon[key]}}returncon}functionmergeConfig(){letconfig={}for(vari=0,len=arguments.length;i的url只能是app.json中配置的路由,只支持querystrings,不支持hash,so链接不能用作锚点好在微信提供了,实现如下:wxml文件clicktotargethash1点击目标hash2js文件页面({data:{toView:'hash1'},goHash(e){lethash=e.currentTarget.dataset.hashthis.setData({toView:hash})}})但是这是单向的,只能点击按钮,跳转到锚点,屏幕滑动到对应的锚点,toViewproperty不会相应改变,当然如果你可以通过bindscroll事件动态获取相关数据,并且最终可以计算出toView,那就另当别论了,但是又不想去操作dom来获取元素的宽度和高度。不好意思,微信的dom卖完了,没有了2.滚动加载微信里面没有document和window对象,所以没有onscroll给你用,怎么办?好在微信提供了,实现如下:wxml文件{{item.name}}js文件页面({data:{movies:[]},getMovies(){let_self=thiswx.request({url:'https://......',data:{},success:function(res){//res.data是你的后端返回的真实数据_self.setData({movies:res.data})}})},loadMovies(){//获取要更新的数据,setDataresetsmovies}})可以懒加载或者做预加载,具体逻辑自己想想吧,先说这么多。.最后一个抱怨,为什么它不支持外部链接?为什么引用共享组件这么麻烦?