当前位置: 首页 > news >正文

小程序开发-8-流行页面编码与组件的细节知识

流行页面编码与组件的细节知识

组件属性赋值与页面渲染流程解析

组件传值

<v-like like="{{classic.like_status}}" count="{{classic.fav_num}}"/>

流程

API->Page js-通过setData->Page WXML->Like Property->通过setData->Like WXML

setData的误区

this.data.xxx=xxx 与 this.setData({xxx})
前者不更新界面,后者更新界面。

小程序的setData与React中的setData

小程序中的setData都是同步的,而React中的setData有同步也有异步

组件向page传值

组件内部

method(){
 onLike:function(event){
     //自定义事件
     let like = this.properties.like;
     let count = this.properties.count;
     count = like?count-1:count+1;
     //事件激活
     let behavior = this.properties.like?'like':'cancel';
     this.triggerEvent('like',{
         behavior: behavior
     },{}); 
     //第三个参数可取值为: bubbles(事件是否冒泡),
     //composed(是否可以穿越组件边界),
     //capturePhase(事件是否拥有捕获阶段)
 }
}

page页面的wxml

<v-like bind:like="onLike"/> //此处like为组件内部定义的事件名

page页面的js

onLike: function(e){
 console.log(e);
}
//打印的信息为:
//...
//detail:{behavior:"like"}或者是detail: {behavior:"cancel"}
//...

组件的生命周期函数

created(组件实例进入页面节点),attached(组件节点实例进入页面节点树),ready(组件布局完成后执行),move(组件实例被易懂到节点树另一个位置执行),detached(组件从页面节点树移除时执行)

注意:

  • 在data里面初始变量时不要用Number或者String等其他的类型修饰,例a: 1,b: false。而properties可以,因为小程序进行了加工处理。否则控制台打印的data为f,即function对象
  • 小程序会把组件里面的propreties与data对象合并
  • properties的变量不要和data里面的变量相同,否则properties会覆盖data里面的变量

注意防范内存泄漏

不要在oberver中修改自身属性值,在期刊树那里可以这样编码,来显示08的效果

properties:{
 index: Number,
 observer: function(newVal,oldVal,changedPath){
     let val = newVal < 10?'0'+newVal:newVal;
     this.setData({
         _index: val
     })
 }
}

data:{
 _index:String
}

一旦修改自身会造成无限递归自己,造成内存泄漏

转载于:https://www.cnblogs.com/TomAndJerry/p/10490165.html

相关文章:

  • 向量的基本运算
  • 计算几何函数库(转)
  • java并发多线程显式锁Condition条件简介分析与监视器 多线程下篇(四)
  • 2019阿里云峰会-边缘计算专场,邀您共话大连接低时延场景下的技术探索与实践...
  • RPM 包的构建 - 实例
  • macOS Mojave 无法运行未签名程序的解决方案
  • js常见算法题
  • Jenkins控制台显示乱码
  • 代码整洁之道-第9章-单元测试-读书笔记
  • 系列教程丨用 Docker 探索开源软件 —— PostgreSQL(二)
  • 生成随机验证码
  • 云越发展,锁定问题就会越严重?
  • 4.14Python数据处理篇之Matplotlib系列(十四)---动态图的绘制
  • componentOptions配置选项的作用和用法
  • 技本功丨收藏!斜杠青年与你共探微信小程序云开发(下篇)
  • [NodeJS] 关于Buffer
  • 【知识碎片】第三方登录弹窗效果
  • Docker容器管理
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • 编写符合Python风格的对象
  • 理清楚Vue的结构
  • 前嗅ForeSpider采集配置界面介绍
  • 巧用 TypeScript (一)
  • 数据科学 第 3 章 11 字符串处理
  • 为什么要用IPython/Jupyter?
  • 【干货分享】dos命令大全
  • ​Python 3 新特性:类型注解
  • !!java web学习笔记(一到五)
  • # include “ “ 和 # include < >两者的区别
  • #pragma 指令
  • (初研) Sentence-embedding fine-tune notebook
  • (定时器/计数器)中断系统(详解与使用)
  • (二)Eureka服务搭建,服务注册,服务发现
  • (翻译)terry crowley: 写给程序员
  • (附源码)springboot教学评价 毕业设计 641310
  • (附源码)基于SSM多源异构数据关联技术构建智能校园-计算机毕设 64366
  • (利用IDEA+Maven)定制属于自己的jar包
  • (三) diretfbrc详解
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • (四)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)
  • (转)拼包函数及网络封包的异常处理(含代码)
  • (转)真正的中国天气api接口xml,json(求加精) ...
  • ******IT公司面试题汇总+优秀技术博客汇总
  • .net 简单实现MD5
  • .Net程序帮助文档制作
  • .net解析传过来的xml_DOM4J解析XML文件
  • .Net转Java自学之路—基础巩固篇十三(集合)
  • @angular/cli项目构建--http(2)
  • @NoArgsConstructor和@AllArgsConstructor,@Builder
  • []error LNK2001: unresolved external symbol _m
  • [④ADRV902x]: Digital Filter Configuration(发射端)
  • [Ariticle] 厚黑之道 一 小狐狸听故事
  • [BeginCTF]真龙之力
  • [BUG] Authentication Error