发表于: 2019-11-04 20:11:20

1 972


今天完成的事:

自定义picker组件,并优化picker组件数据显示、滚动选择

明天计划的事:

编写推荐职业页面、路由跳转

遇到的问题:

暂无
收获:


微信小程序开发中各种跳转方式的区别

wx.navigateTo:

用于保留当前页面、跳转到应用内的某个页面,使用 wx.navigateBack可以返回到原页面。对于页面不是特别多的小程序,通常推荐使用 wx.navigateTo进行跳转, 以便返回原页面,以提高加载速度。当页面特别多时,则不推荐使用。

wx.redirectTo:

当页面过多时,被保留页面会挤占微信分配给小程序的内存,或是达到微信所限制的 5 层页面栈。这时应该考虑选择 wx.redirectTo。wx.redirectTo()用于关闭当前页面,跳转到应用内的某个页面。这样的跳转,可以避免跳转前页面占据运行内存,但返回时页面需要重新加载,增加了返回页面的显示时间。

wx.reLaunch:

wx.reLaunch()与 wx.redirectTo()的用途基本相同, 只是 wx.reLaunch()先关闭了内存中所有保留的页面,再跳转到目标页面。

wx.switchTab:

对于跳转到 tab bar 的页面,最好选择 wx.switchTab(),它会先关闭所有非 tab bar 的页面。其次,也可以选择 wx.reLaunch(),它也能实现从非 tab bar 跳转到 tab bar,或在 tab bar 间跳转,效果等同 wx.switchTab()。使用其他跳转 API 来跳转到 tab bar,则会跳转失败。

wx.navigateBack:

用于关闭当前页面,并返回上一页面或多级页面。开发者可通过 getCurrentPages() 获取当前的页面栈,决定需要返回几层。这个 API 需要填写的参数只有 delta,表示要返回的页面数。若 delta 的取值大于现有可返回页面数时,则返回到用户进入小程序的第一个页面。当不填写 delta 的值时,就默认其为 1(注意,默认并非取 0),即返回上一页面。

  1. 小程序实战经验总结:

      
  2. 小程序image标签选择大图片的时候,图片会变形

原因是 小程序的image标签会自带宽高  320 * 240

需要设置一下 mode = “widthFix”  就可以 变成原图片的宽高了

  1.  文字需要换行\n 或者需要 占位符 &nbsp时, 必须要使用 text 标签 否则无效 。

要使用&nbsp  &lt这一类的 符号时  需要在text标签内设置    decode =“{{ture}}”

  1. 小程序 做嵌套循环时  数据不方便放在data 里  

解决方案 :  把需要循环的模块做成模板 ,模板里的data设置成变量。

在调用模板时 调用时的data 里再把变量换成需要调用的数组 或者 字符串等。

  1. 微信小程序里 是不支持 background 为图片的。

解决方法 : 直接使用 image 标签 ,src 设置成网络图片,如果需要做成背景, 在image标签里 加一个子标签 ,里面设置绝对定位就可以了 。

<image>

<view>    这行设置相对于image 绝对定位 ,就可以实现背景图效果    </view>

</image>

  1. 设置全局变量属性

小程序里,变量一般是放在每个文件夹的js里的 ,有时候所有页面都用到 某个数据时 ,一个个申明 太麻烦 ,所以定义一个全局变量 。

首先要在最外面的 app.js 里 的 globalData 里把需要的数据 放进去 。

如 : globalData: {

userInfo: null,

url: “http://m.yayuanzi.com/”,

}

再在你需要调用的页面的文件夹里的js文件中 。

在第一行加上const app = getApp();

然后定义一个变量,把数据放在这个变量里

如 :

data: {

//获得官网地址

address: app.globalData.url,

}

最后  这个address 就可以在页面里用了 。

  1. 小程序列表渲染 wx :key 的问题

小程序列表渲染是使用 wx:for = “ {{  循环的参数  }} ”

如果不加wx:key = “ 参数 ” 的话 ,调试工具中会出现 黄色的警告信息 。 但不会影响页面 。

网上找的原因 :

wx:key 的值以两种形式提供

1、wx:key=”property” 其中property是代表在 for 循环的 array 中 item 的某个 property,该 property 的值需要是列表中唯一的字符串或数字,且不能动态改变。类似于字典的key值

2、wx:key=”*this”, 保留关键字 *this 代表在 for 循环中的 item 本身,这种表示需要 item 本身是一个唯一的字符串或者数字,如:

当数据改变触发渲染层重新渲染的时候,会校正带有 key 的组件,框架会确保他们被重新排序,而不是重新创建,以确保使组

件保持自身的状态,并且提高列表渲染时的效率。

不添加wx:key情况:

<block wx:for-items=”{{userInfoList}}” >,会出现warning: Now you can provide attr “wx:key” for a “wx:for” to improve performance. 如果明确知道该列表是静态,或者不必关注其顺序,可以选择忽略。

  1. 小程序里 的单位

小程序的单位rpx 是根据屏幕来自适应的,开发的时候,把开发工具里的 手机模型选成 iphone 6 。 这样的话,1px = 2rpx ,方便开发。

8.小程序 image跟view标签上下会有空隙

解决方案 就是可以在image那里设置vertical-align:top/bottom/text-top/text-bottom

原因:图片文字等inline元素默许是跟父级元素的baseline对齐,而baseline又和父级底边有必定间距



返回列表 返回列表
评论

    分享到