https://mp.weixin.qq.com/debug/wxadoc/dev/demo.html
实例源码
可在微信中搜索“小程序示例”
1 | 所有项目源代码、资源文件等内容都将在微信公众号中提供下载地址。读者可以从我的微信公众号中获取项目效果图和最新版本源代码。代码包括Orange Can项目的小程序代码及部分功能的服务端PHP代码。 |
开始
1 | 1、目录结构 |
引入WEUI
1 | 方式一: |
语法及配置
1 | 1、小程序标题居中,居左 |
本地缓存
1 | 缓存让小程序具备了本地存储数据的能力,它具有以下几个特点: |
页面参数传递
1 | 1、路由跳转时携带参数 |
组件之间参数传递
跟vue组件类似,但传值为单向数据流没有双向绑定的效果
父组件
1 | <my-drawer bind:changeDrawer="changeDrawer" isShow="{{isShow}}"></my-drawer> |
1 | methods: { |
子组件
1 | <van-popup |
1 | properties: { |
正常的写法如上,但是我发现如果 子组件中直接 isShow 也讷讷感达到预期效果,还能触发observer。所以说这是否意味着子组件能直接修改父组件的传值呢?
1 | properties: { |
后边发现,组件中的 data 与 properties 中的同名称属性是不同的,在页面使用也存在所谓优先级。初始化时 properties中的 isShow 优先级大于 data中的 isShow 。但如果组件中调用 this.setData() 方法修改了 isShow 那么优先使用 本地 data中的isShow ,同理如果父组件中的isShow 发生了改变也会让 properties中的 isShow 优先使用。所以有了数据能双向绑定的错觉
动态值绑定
动态类名
1
2
3
4
5
6
7
8
9
10<view
class="{{[currentData.id == item.id ? 'active' : '', 'list-item']}}"
>
</view>
<view
class="{{ !item.path?'is-hidden':''}}
>
</view>列表动态参数
1
2
3
4
5
6
7<view
class="{{[currentData.id == item.id ? 'active' : '', 'list-item']}}"
wx:for="{{list}}"
wx:key="item"
bindtap="handleActiveChange"
data-id="{{item.id}}"
>data-id, 取值从 handleActiveChange 方法, data-xx 方式只能传递基本的 string Boolean
1
2
3
4
5
6
7handleActiveChange(e) {
let id = e.currentTarget.dataset.id;
let data = this.data.list.find(item=> item.id == id);
if(data) {
}
},
- 本文作者: 王不留行
- 本文链接: https://wyf195075595.github.io/2022/06/17/programming/wechat/小程序/入门开发到实践/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!