小程序踩坑日志(四)-----Wepy

小程序踩坑日志(四)-----Wepy

Wepy是 腾讯参考了Vue 等框架对原生小程序进行再次封装的框架,更贴近于 MVVM 架构模式, 并支持ES6/7的一些新特性。对于经常接触vue的开发者,当然更愿意接触这个框架

官方文档:https://tencent.github.io/wepy/document.html#/?id=快速入门指南

全局安装wepy命令行工具

npm install wepy-cli -g

初始化项目

//我安装的版本号是1.7.3
//1.7.0之后的版本使用 wepy init standard myproject 初始化项目,反之wepy new myproject
wepy init standard myproject

切换至目录,安装依赖

cd xxx
npm install

开启实时编译

wepy build --watch

$preload : 给页面加载preload数据

加载preload数据后,跳转至另一个页面时,在onLoad方法中可以获取到上个页面的preload数据。

  // page1.wpy
  this.$preload('userName', 'G');
 

  // page2.wpy
  onLoad (params, data) {
      console.log(data.preload.userName);
  }

mixins 文件夹的用处

Mixin基类,用于复用不同组件中的相同功能。换句话说,就是被公用的方法 ,

**wepy中方法的执行顺序是先找自身的方法,然后找mixins中的,如果方法名冲突,会优先执行自己的方法,然后执行mixins中的方法。 **

mixins/test.js

import wepy from 'wepy';
export default class testMixin extends wepy.mixin {
      methods = {
        tap () {
          this.mixin = 'mixin data was changed'
          console.log('mixin method tap')
        }
      }
}

mixins基类与本页面预处理函数(onload onshow)的执行顺序

先执行mixin中的onload 然后执行页面的onload 其次执行mixins的onshow 最后执行 自己的onshow

Wepy获取地址栏参数

可在onload中获取到,params是地址栏传递的参数,data.preload可用于接受上个页面以this.$preload传递的数据,两个没有任何关系的页面不可用这个方法获取

  export default class Index extends wepy.page {
      
      onLoad(params, data) {
           console.log(params)
           /* 浏览器输出输出
           {id:'1',name:'admin'}
           */
        }
      
  }

Wepy 组件循环渲染

当需要循环渲染WePY组件时(类似于通过wx:for循环渲染原生的wxml标签),必须使用WePY定义的辅助标签< repeat >

用法如下

<style lang="less">
</style>
<template>
    <view>
      <!--组件循环渲染-->
      <repeat for="{{list}}" key="index" item="item">
        <counter class="counter" :syncTitle.sync="item.name"></counter>
      </repeat>
    </view>
</template>
<script>
    import wepy from 'wepy';
    //引入子组件
    import counter from "@/components/counter";
    export default class Signin extends wepy.page {
        config = {
            navigationBarTitleText: "test"
        };
        components={
          counter:counter,
        };
        data = {
          list:[
            {name:"admin",age:"10"},
            {name:"admin1",age:"11"},
            {name:"admin2",age:"12"},
            {name:"admin3",age:"13"},
          ],
        };
        onLoad(params, data){};
        methods = {};
        onLoad() {}
    }
</script>

效果如下

在这里插入图片描述

props传值

父传子,单项动态传值

父组件
<counter class="counter" :syncTitle.sync="parentTitle"></counter>

import counter from "@/components/counter";
export default class Signin extends wepy.page {
     components={
          counter:counter,
        };
        data = {
          parentTitle:"父向子单向动态传值",
        };
}

微信弹出框

wx.showToast({
	title: '成功',
	icon: 'succes',
	duration: 1000,
	mask:true
})

在这里插入图片描述

		wx.showModal({
            title: '提示',
            content: '模态弹窗',
            success: function (res) {
                if (res.confirm) {
                    console.log('用户点击确定')
                }else{
                   console.log('用户点击取消')
                }
 
            }
        })

在这里插入图片描述


wx.showActionSheet({
  itemList: ['item1', 'item2', 'item3'],
  success: function(res) {
    console.log(res.tapIndex)
  },
  fail: function(res) {
    console.log(res.errMsg)
  }
})

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值