微信小程序学习笔记
来源:互联网 发布:php和java哪个工资高 编辑:程序博客网 时间:2024/06/05 09:41
1、基本骨架结构:
wxml:
<view class="container"> <image class="avatar" src="/images/avatar/1.png"></image> <text class="motto">Hello, 宇智波胖虎</text> <view class="journey-container" bindtap="onTap"> <text class="journey">开启小程序之旅</text> </view></view>单位:rpx
可以根据屏幕宽度进行自适应,1rpx = 0.5px = 1物理像素,可以用 iPhone6 作为视觉稿的标准。
小程序中用到的px,是逻辑物理像素,所以大小是设计图大小的一半。
弹性布局:
display:flex;flex-direction:column;align-items:center;轮播:
<swiper> <swiper-item></swiper-item></swiper>js的page标准模板:
Page({ /** * 页面的初始数据 */ data: { }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { }, /** * 生命周期函数--监听页面显示 */ onShow: function () { }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () { }, /** * 生命周期函数--监听页面卸载 */ onUnload: function () { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { }})
实际例子:var postsData = require('../../data/posts-data.js')Page({ data: { //小程序总是会读取data对象来做数据绑定,这个动作我们称为动作A // 而这个动作A的执行,是在onLoad函数执行之后发生的 }, onLoad: function () { // this.data.postList = postsData.postList this.setData({ postList:postsData.postList }); },})this.setData(json名):将对象数据放到data:{};中,注意键值对应。
vertical="{{false}}":别忘记花括号
wx:if="{{布尔值}}" wx:else :控制元素是否显示(用于是否收藏)
遍历,用<block></block>
<block wx:for="{{postList}}" wx:for-item="item" wx:for-index="idx"> <!--//template--> <view catchtap="onPostTap" data-postId="{{item.postId}}"> <template is="postItem" data="{{...item}}"/> </view></block>
微信跳转事件:
Page({ onTap: function (event) { // wx.navigateTo({ // url:"../posts/post" // }); wx.switchTab({ url: "../posts/post" }); }})
微信冒泡事件:微信事件从子元素向父元素冒泡bindtap(可以)、catchtab(阻止)
module.exports = { postList: local_database}var postsData = require('../../data/posts-data.js')
循环绑定事件:
<block wx:for="{{postList}}" wx:for-item="item" wx:for-index="idx"> <!--//template--> <view catchtap="onPostTap" data-postId="{{item.postId}}"> <template is="postItem" data="{{...item}}"/> </view></block>小程序里没有DOM,只能进行数据绑定和小程序自带的组件
收藏与取消收藏(难点):
getPostsCollectedAsy: function () { var that = this; wx.getStorage({ key: "posts_collected", success: function (res) { var postsCollected = res.data; var postCollected = postsCollected[that.data.currentPostId]; // 收藏变成未收藏,未收藏变成收藏 postCollected = !postCollected; postsCollected[that.data.currentPostId] = postCollected; that.showToast(postsCollected, postCollected); } }) }, getPostsCollectedSyc: function () { var postsCollected = wx.getStorageSync('posts_collected'); var postCollected = postsCollected[this.data.currentPostId]; // 收藏变成未收藏,未收藏变成收藏 postCollected = !postCollected; postsCollected[this.data.currentPostId] = postCollected; this.showToast(postsCollected, postCollected); },
target指的是当前点击的组件、currentTarget指的是事件捕获的组件
阅读全文
0 0
- 微信小程序学习笔记
- 微信小程序学习笔记
- 微信小程序学习笔记
- 微信小程序学习笔记
- 微信小程序学习笔记一
- 微信小程序学习笔记---定位
- 微信小程序学习笔记1
- 微信小程序学习笔记2
- 微信小程序 - MINA 框架 学习笔记
- 微信小程序学习笔记(一)
- 微信小程序学习笔记(1)--------准备工作
- 微信小程序学习笔记(6)--------组件
- 微信小程序学习笔记(9)--------API
- 微信小程序学习笔记(一)
- 微信小程序学习笔记(二)
- 微信小程序学习笔记(1)
- 微信小程序学习笔记(三)
- 【学习笔记】微信小程序页面路由
- 数据结构~算法
- Jenkins集成JMeter性能测试与Ant构建性能测试
- 在android程序中调用shell命令与脚本
- perl基础学习-数组
- lua ~=的使用
- 微信小程序学习笔记
- 微信小程序退出重启
- 最长上升子序列(LIS)的O(nlogn) & O(n^2)算法
- Table 交换行tr标签
- Stack Overflow
- 求负数补码及补码转为原码
- bootstrap组件
- java中进程和线程的区别
- 深入理解ThinkPHP等框架路由的实现