• 微信小程序的五种传值方式


    1、使用全局变量传递数据

    利用app.js 中的 globalData 将数据存储为全局变量,在需要使用的页面通过getApp().globalData获取数据

    app.js

    1. App({
    2. globalData:{
    3. data: { name: 'demo' }
    4. }
    5. })

    使用组件

    1. let app = getApp()
    2. app.globalData.data

    2、使用本地存储数据传递

    使用小程序提供缓存

    同步缓存:wx.setStorageSync 与 wx.getStorageSync 

    异步缓存:wx.setStorage 与 wx.getStorage

    移除本地缓存:wx.removeStorageSync(同步)、wx.removeStorage(异步)

    1. // 将数据存储在本地缓存中指定的 key
    2. wx.setStorgaeSync('data','hello')
    3. // 从本地缓存中同步获取指定 key 的内容
    4. wx.getStorageSync('data')
    5. // 从本地缓存中移除指定 key
    6. wx.removeStorgae('data')

    3、使用路由传递数据

    传递组件

    1. wx.navigateTo({
    2. url: 'test?id=1',
    3. success: (res)=> {
    4. // 通过 eventChannel 向被打开页面传送数据
    5. res.eventChannel.emit('acceptDataFromOpenerPage', { data: 'test' })
    6. }
    7. })

    使用组件

    1. Page({
    2. onLoad: function(option){
    3. console.log(option.query)
    4. // 监听 acceptDataFromOpenerPage 事件,获取上一页面通过 eventChannel 传送到当前页面的数据
    5. eventChannel.on('acceptDataFromOpenerPage', (data)=> {
    6. console.log(data)
    7. })
    8. }
    9. })

    4、父子组件使用selectComponent('#页面id'),triggerEvent('方法名','值')

    <view id='demo' bind:returnDate='handleReturnDate'><view>
    1. Page({
    2. handleData(data){
    3. this.selectComponent("#demo").showModal(data);
    4. }
    5. // 子组件传递过来的值
    6. handleReturnDate(data){
    7. console.log(data)
    8. }
    9. })
    1. Component({
    2. methods:{
    3. // 父组件传递过来的数据
    4. showModal(data){
    5. console.log(data)
    6. },
    7. submit(){
    8. // 子组件传递数据给父组件
    9. this.triggerEvent("returnDate", sportsGuidance);
    10. }
    11. }
    12. })

    5、子组件通过properties接收:

    父组件parent

    parent.wxml

    1. <view>
    2. <child :name='jack'></child>
    3. </view>

    parent.json

    1. {
    2. "usingComponents": {
    3. "child":"/child/child",
    4. },
    5. "navigationBarTitleText": "父组件的导航标题"
    6. }

    子组件 child

    child.wxml

    1. <view>
    2. 父组件传递过来的name:{{name}}
    3. view>

    child.js

    1. Component({
    2. // 接受父组件传递过来的属性
    3. properties:{
    4. name:String //简化的定义方式
    5. //name:{
    6. //type:String,
    7. //value:''
    8. //}
    9. },
    10. // 私有数据,可用于模板渲染
    11. data:{},
    12. // 组件生命周期声明对象
    13. lifetime:{
    14. },
    15. // 组件所在页面的生命周期声明对象
    16. pageLifetimes:{
    17. },
    18. // 事件响应函数和任意的自定义方法
    19. methods:{}
    20. })

    具体其他的属性和使用方法,详见小程序官网Component(Object object) | 微信开放文档

  • 相关阅读:
    超简单免费转换ape到flac
    Python入门介绍
    生成Release版本的.pdb文件
    网络安全(黑客)小白学习笔记
    【PCB学习笔记】绘制智能车四层板 --- DRC检查,拼版设计及资料输出
    offline RL | CQL:魔改 Bellman error 更新,得到 Q 函数 lower-bound
    【异常错误】torch.cuda.is_available()一直是false
    测试域: 流量回放-介绍篇
    计算机组成原理习题课第一章-3(唐朔飞)
    算法题练习——NC15 求二叉树的层序遍历、NC88 寻找第K大
  • 原文地址:https://blog.csdn.net/Anything2207294253/article/details/127729988