博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
wepy 使用中...
阅读量:6996 次
发布时间:2019-06-27

本文共 1461 字,大约阅读时间需要 4 分钟。

之前小程序项目没有使用任何框架,本来开发时间太早,那会儿小程序生态不是很成熟,最近项目松,想把之前的代码重构一下,选用的wepy框架,之所以选择wepy,最重要的原因还是由于它是腾讯开源的框架,在使用中也遇到了一些问题,会持续把遇到的问题记下来;

(1)在app.wpy文件中,我自定义了一些方法,其中包括对request的封装,根据官方文档描述,在page页面可以使用this.$parent来获取,如下

app.wpy doPost() {    console.log('app.wyp')}...index.wpy  // page页面...onLoad() {    console.log(this.$parent.doPost())        "app.wpy"}复制代码

如果只是单纯的page页面使用,那是不会有什么问题的; 如果在component组件页面,如下

index.wpy  // page页面import wepy from 'wepy';import tel from '../components/tel' // component组件页面export default class Index extends wepy.page {    components = {        tel    }}tel.wpy //组件页面import wepy from 'wepy';export default class Conchat extends wepy.component {    onLoad() {        console.log(this.$parent) // 会指向父组件        console.log(this.$parent.$parent) // 会指向app.wpy    }}复制代码

wepy官方文档中是这么写的:https://tencent.github.io/wepy/document.html#/api?id=wepycomponent-class

现在还有一种情况,会导致一些问题,大家都知道,wepy完全是类vue的开发风格,它里面也有mixin混合功能,这个无疑为我们开发带来很高的体验,接着上面的问题,如果在mixin中定义了一个公用的方法,如下:

mixin.jsimport wepy from 'wepy';export default class ScanRed extends wepy.mixin {    onLoad() {        console.log(this.$parent.doPost())    }}index.wpy;...mixins = [mixin];输出的结果为"app.wpy";tel.wpy;...mixins = [mixin];代码就会报错,doPost方法是未定义的复制代码

这是因为,在tel.wpy中,this.$parent指向的是index.wpy; 这个时候就有点尴尬了。。。

所以在mixin定义的js中,我们可以使用wepy.$instance

wepy.$instance === this.$parent        //true复制代码

这个在官方文档中没有提及,可能不是很建议这种方法吧,其实在我遇到这个问题的时候,我也发现自己之前的写法上面有点错误,最好的处理方式是,自定义的方法和类,建立一个单独的js文件,这样就不会有这种尴尬了;

转载地址:http://pzcvl.baihongyu.com/

你可能感兴趣的文章
数字高程模型和地图——thematicmapping.org译文(一)
查看>>
8-5 泛型类型擦除
查看>>
正文处理命令及tar命令
查看>>
实习第三周小记-----生活在于经历 分类: 程序人生 ...
查看>>
将excel中的数据转为json格式
查看>>
字典操作
查看>>
[洛谷P2839][国家集训队]middle
查看>>
《求一个数组的连续的最大子数组之和》
查看>>
设置行间距,自适应文字大小
查看>>
资金流学习-广州发展
查看>>
python基础3(元祖、字典、深浅copy、集合、文件处理)
查看>>
正确编写Designated Initializer的几个原则
查看>>
iOS播放动态GIF图片
查看>>
获取版本号
查看>>
使用jdk自带的visualVM监控远程监控was
查看>>
集合视图UICollectionView 介绍及其示例程序
查看>>
JsLint 的安装和使用
查看>>
合并傻子//区间dp
查看>>
让IE和Chrome都以隐身模式启动
查看>>
MyPython-->进阶篇-->类
查看>>