Ⅱ 微信小程序开发常用知识点
与iOS开发很相似,小程序的导航栏也可以全局设置一下,在公共文件app.json中设置了导航栏相关样式如下:
这个地方是全局设置,如果想要在不同的页面设置各自的标题属性,只需要在该子级文件中设置
子页面想调用共公js的方法,需先在子页面js中先实例化app:具体过程如下
在需要调用的子页面中,
如果是嵌套循环,很容易出现多个list和index,例如表视图一样,所以在小程序中可以重命名 list 和index 方法为:wx:for-index='重命名' wx:for-list="重命名"
在APP开发中,UI复用是一个很好的手段,在小程序上就是模板template。
在逛小程序联盟的时候发现了一个大湿总结的比我好,搬过来一下。
微信小程序中,如果几个页面中需要引用同一个header/footer,当定义了公共模板时,有两种引用方法如下:
方法一:在公共模板中定义template元素,利用 方法 ,这种方式只会显示公共模板的template里面的内容,之外的内容不会显示
** 方法二:**
总结:import方式和imclude方式的不同在于前者仅引用公共模板中的template里面的内容后者仅引用template以外的内容,显而易见,include方式更简单一些,在wxml中只需要一句话即可。
rpx单位是微信小程序中css的尺寸单位,rpx可以根据屏幕宽度进行自适应。规定屏幕宽为750rpx。如在 iPhone6 上,屏幕宽度为375px,共有750个物理像素,则750rpx = 375px = 750物理像素,1rpx = 0.5px。
具体的 这里有一片文章介绍的很详细 , 还有这个
小程序的事件主要有:
小程序中的wxml中绑定事件有两种:以touchtab为例 ,在wxml中必须有bind/catch不然无法实现上述事件
bindtouchtab和catchtouchtab bind的不会阻止事件冒泡(元素最里层到最外层函数执行),catch会阻止冒泡,只是冒泡到当前层结束
如果想在元素执行某事件时把元素的某个属性传到后台 可在元素中加入data-属性名称=“xxx”,在事件函数中 function(event){}的event中的currentTarget里面的data-set里面可查看接收在元素中绑定的的id或者其他属性clientX/Y 查看滑动手指距离屏幕左侧的位置,查看滑动位置也可以通过touchstart和和touchend的clientx/y获取
看到几个别人写的,瞬间石化,果断收藏。
在小程序中,定义了一项工具文件utils,此文件的js旨在本文件之内有效,当其他子页面想调用其中的js方法或者变量时,需要两步骤:
1:在utils被调用的js文件中,面向对象的方式模型输出: mole.exports={要调用的函数名称:要调用的函数名称 };
2:在要调用的js文件中模块化引入utils的js文件 var object=require("utils被调用的js文件地址"); 可以输出一下object就能看到被调用的方法了;
例子如下:
要调用的js文件:
小程序的后台获取数据方式get/post具体函数格式如下:wx.request({})
如果屏幕中某元素的内容超过此元素的高度,可设置元素为scroll-view 为滚动状态元素,这样可以做到元素固定高度且元素内容滚动屏幕不滚动的效果;
scroll-view标签的主要属性分为以下几种:
微信小程序广告轮播元素 图片所在元素/swiper-item>
其中属性有:
图片更改事件:bindchange='imgchange' imagechange()的e.detail.current为当前显示页面的下标值
Ⅲ 微信小程序 导航栏切换视图
效果图
.wxml页面
<!-- nav导航 -->
<view class="goods">
<block wx:for="{{tab}}" wx:key="key">
<view class="{{item.style}}" bindtap="tarClick" data-index="{{index}}">{{item.titcle}}</view>
</block>
</view>
<!--导航下 视图滑块 -->
<swiper bind:change="changeTab" current="{{index}}">
<block>
<swiper-item>
<text>11111</text>
</swiper-item>
<swiper-item>
<text>2222</text>
</swiper-item>
<swiper-item>
<text>3333</text>
</swiper-item>
</block>
</swiper>
.js页面
Page({
data: {
tab:[
{titcle:"商品参数",style:"color"},
{titcle:"商品介绍",style:""},
{titcle:"商品规格",style:""},
],
index:0,
goods:''
},
tarClick(e){
// console.log(e.currentTarget.dataset.index)
let tab = this.data.tab;
let that = this;
let index = e.currentTarget.dataset.index
console.log(index)
tab.map((item,key)=>{
if(key==index)
{
tab[key]['style']='color';
}else{
tab[key]['style']='';
}
})
that.setData({tab,index})
},changeTab(e){
console.log(e.detail.current)
let tab = this.data.tab;
let that = this;
let index = e.detail.current
console.log(index)
tab.map((item,key)=>{
if(key==index)
{
tab[key]['style']='color';
}else{
tab[key]['style']='';
}
})
that.setData({tab,index})
},
})
.wxss页面
/* pages/details/details.wxss */
.goods{
width: 100%;
height: 100rpx;
/* background-color:yellowgreen; */
display:flex;
justify-content: space-around;
align-items: center;
}
.goods view{
width: 160rpx;
height: 100rpx;
display: flex;
justify-content: center;
align-items: center;
}
.color{
color: red;
border-bottom: 2px solid red;
}
Ⅳ 微信小程序开发怎么让图片符合图片播放
具体步骤:
1、首先打开微信开发者工具。
2、在项目文件目录中打开swiper.wxml文件。
3、然后设置swiper标签。
4、使用current属性来设置当前要播放哪张图片。
5、在swiper-item里面设置好要播的图片。
6、打开模拟器,显示绿色表示开启。
7、在窗口中我们可以看到当前播图的图片就是我们刚才所设置的。【点击了解更多加盟项目】
Ⅳ 微信小程序--swiper中current问题
2019/2/22
index.wxml文件
index.js文件
图片数组 imageArr 动态的改变数组的数量,
例如:当 imageArr 中的长度为4,轮播滚动到 3 ,current=3;此时swiper没有绑定current,并将 imageArr 的长度动态改为2,这会出现current还是3,导致swiper不显示的问题。
解决:
index.wxml 中在swiper中绑定current
index.js 中增加current
Ⅵ 微信小程序bindchange是什么事件
bindChange为输入框发生改变事件。微信提供的bindchange在支持方面还有小问题,目前是失去焦点才能触发到此事件的发生。
如果在bindchange的事件回调函数中使用setData改变current值,则有可能导致setData被不停地调用,因而通常情况下请在改变current值前检测source字段来判断是否是由于用户触摸引起。
swiper里加了bindchange事件,有很多个swiper-item,连续快速切换swiper-item触发bindchange事件,小程序会出现一直无限触发bindchange事件。请检查是否在change事件中使用setData改变current值,请避免该操作。
(6)微信小程序current扩展阅读
bindchange是swiper组件的属性之一,类型为eventhandle。
current改变时会触发change事件,event.detail={current,source}。当滑块的current改变时会触发该事件并执行绑定的方法。
swiper组件是小程序中使用频次最高的组件之一,属于视图容器类组件,它通过对自身属性进行简单配置就可以实现在前端开发中要写很多代码才能完成的轮播图效果。
Ⅶ 微信小程序页面返回传递参数
let userInfo = {...}; //需要传递的参数,这里用对象举例。
let pages = getCurrentPages(); //返回pages的所有信息;数组格式
let prevPage = pages[ pages.length - 2 ]; //返回上一个页面的所有信息 上一级为-2
prevPage.setData({
user:userInfo //user为上个页面需要修改的数据,如data里面的数据,数据格式要对应。
});
wx.navigateBack({
delta:1 // 返回上一级页面。
})
Ⅷ 微信小程序 getCurrentPages获取当前页面栈
通常小程序直接页面传值是通过 url 拼接或利用 storage 。
比如在订单确认页面需要进行收货地址选择会进入到地址选择页面,这个订单确认页面与地址选择页面的通讯就很头疼。
而 getCurrentPages() 刚好解决了这一难题。
使用方法
Ⅸ 微信小程序页面常用的5种跳转方法
为了不让用户在使用小程序时造成困扰,微信小程序规定页面路径只能是 五层 ,所以需尽量避免多层级的交互方式。 而页面跳转则涉及到多个页面层级。 保留当前页面,跳转到应用内的某个页面,使用wx.navigateBack可以返回到原页面。 需要跳转的应用内非 tabBar 的页面的路径 , 路径后可以带参数。参数与路径之间使用?分隔,参数键与参数值用=相连,不同参数用&分隔; 如 'path?key=value&key2=value2' eg: wx.navigateTo({ url:'test?id=1' }) 这种跳转方式默认有返回按钮,返回到上一个页面 关闭当前页面,跳转到应用内的某个页面。 需要跳转的应用内非 tabBar 的页面的路径,路径后可以带参数。参数与路径之间使用?分隔,参数键与参数值用=相连,不同参数用&分隔; 如 'path?key=value&key2=value2' eg: wx.redirectTo({ url:'test?id=1' }) 这种跳转方式默认有返回按钮,返回到上一个页面的再上一层 需要跳转的应用内页面路径 , 路径后可以带参数。参数与路径之间使用?分隔,参数键与参数值用=相连,不同参数用&分隔; 如 'path?key=value&key2=value2',如果跳转的页面路径是 tabBar 页面则不能带参数 eg: wx.reLaunch({ url:'test?id=1' }) 这种跳转方式默认没有返回按钮,不需要默认返回按钮的页面就可以使用这个api了 需要跳转的 tabBar 页面的路径(需在 app.json 的 tabBar 字段定义的页面),路径后不能带参数 { "tabBar": { "list": [{ "pagePath":"index", "text":"首页" },{ "pagePath":"other", "text":"其他" }] } } wx.switchTab({ url:'/index' }) 我们需要调转到tabbar定义的页面的时候,就需要这个api了。踩过这个坑的人就知道,除了这个api,其他的都不能跳转到tabar定义过的页面 关闭当前页面,返回上一页面或多级页面。可通过 getCurrentPages()) 获取当前的页面栈,决定需要返回几层。