首页 > 编程语言 >【wx小程序开发】模板调用 data 里的函数

【wx小程序开发】模板调用 data 里的函数

时间:2024-11-21 20:34:25浏览次数:1  
标签:getDataField max 程序开发 getMax array data 模板 wx

微信小程序 glass-easel 组件框架新增特性中支持在模板中调用 data 里的函数。

如果 data 中的某个字段是函数,在模板里可以直接调用它:

Component({
  data: {
    getDataField() {
      return 'someValue'
    },
  },
})
<view>{{ getDataField() }}</view>

尽管这样做有时会很方便,在实践中依然不建议滥用。

从代码可维护性的角度看, data 中的内容应当与数据内容强相关。如果函数的主要目的是对数据展示方面的预处理,推荐旧写法使用 WXS 的方式,将函数实现内联在模版中。

<!--wxml-->
<wxs module="m1">
var getDataField = function() {
  return 'someValue';
};

module.exports.getDataField = getDataField;
</wxs>

<view> {{m1.getDataField()}} </view>

WXS(WeiXin Script)是内联在 WXML 中的脚本段。通过 WXS 可以在模版中内联少量处理脚本,丰富模板的数据预处理能力。

比如数据处理:


// page.js
Page({
  data: {
    array: [1, 2, 3, 4, 5, 1, 2, 3, 4]
  }
})
<!--wxml-->
<!-- 下面的 getMax 函数,接受一个数组,且返回数组中最大的元素的值 -->
<wxs module="m1">
var getMax = function(array) {
  var max = undefined;
  for (var i = 0; i < array.length; ++i) {
    max = max === undefined ?
      array[i] :
      (max >= array[i] ? max : array[i]);
  }
  return max;
}

module.exports.getMax = getMax;
</wxs>

<!-- 调用 wxs 里面的 getMax 函数,参数为 page.js 里面的 array -->
<view> {{m1.getMax(array)}} </view>

绑定在表达式中的方法在组件每次更新时都会被重新调用,因此不应该产生任何副作用,比如改变数据或触发异步操作。

本文来源:公众号前端精髓

标签:getDataField,max,程序开发,getMax,array,data,模板,wx
From: https://www.cnblogs.com/o-O-oO/p/18561455

相关文章

  • kettle spoon连接mysql数据库报错 [mysql] : org.pentaho.di.core.exception.KettleDa
    先说结论。因为kettle/lib文件夹下没有对应版本的ar包,导致链接不上mysql。找到kettle下载文件,地址在 kettle/data-integration/lib 下载两个文件,一个5.1.41-bin文件,另一个对应自己mysql版本的jar包文件,下面举例我安装的8.0.24版本 将下载的两个jar包复制到 kettle/da......
  • 说说你对属性data-的理解
    data-*属性是HTML5引入的一个自定义数据属性机制,允许开发者在HTML元素上存储自定义数据,这些数据不会影响到页面的布局、样式或其他行为。它本质上提供了一种在HTML中嵌入私有数据的标准化方法,避免使用非标准的属性或全局变量,从而提升代码的可维护性和可读性。以下是dat......
  • Integrating Streamlit and Langchain data analysis agent-entrance
    url:https://www.cnblogs.com/devcxx/p/18550789一、StreamlitintroduceStreamlitisanopen-sourcePythonlibraryforquicklybuildingdatavisualizationandinteractivewebapplications.Itisspecificallydesignedfordatascientistsandengineers,usings......
  • DataGrip 连接数据库失败
    【原文:https://www.cnblogs.com/yuanchaoyong/p/11570510.html】66000][12505]Listenerrefusedtheconnectionwiththefollowingerror:ORA-12505,TNS:listenerdoesnotcurrentlyknowofSIDgiveninconnectdescriptororacle.net.ns.NetException:Listenerrefu......
  • Big Data in Finance
    BigDatainFinance–Assignment1AlgorithmicTradingAssignmentObjective:Developandperformalgorithmictradesandtheirstrategiesusingbigdatainfinance.Requirements:YouarerequiredtodothedataanalysisinPython.Thepurposeofthisdo......
  • 哋它亢:2024datacon SEO
    哋它亢是一种新兴的技术,它来源于datacon2024的SEO赛题,作为其关键词给出。哋它亢作为一种新时代的朝阳产业,其结合了大数据与人工智能技术,通过添加大量机器学习算法,以实现高效的产出。哋它亢专栏文章列表:哋它亢:datacon2024SEO哋它亢:一种新兴SEO技术的datacon-1哋它亢:一种新......
  • DISCOVERYBENCH: Towards Data-Driven Discovery with Large Language Models
    本文是LLM系列文章,针对《DISCOVERYBENCH:TowardsData-DrivenDiscoverywithLargeLanguageModels》的翻译。DISCOVERYBENCH:使用大型语言模型实现数据驱动的发现摘要1引言2相关工作3公式化4DISCOVERYBENCH5实验6结论摘要使用大型语言模型(LLM)的......
  • 开源可视化工具对比:JimuReport VS DataEase
    在当今数据驱动的时代,高效的数据可视化工具成为企业洞察业务、做出决策的关键利器。而在开源可视化工具的领域中,JimuReport和DataEase以其独特的优势脱颖而出,究竟谁更胜一筹呢?让我们一同深入对比,为你的数据可视化之旅找到最佳伙伴。功能对比功能JimuReportDataEase......
  • 哋它亢百科【用于DataCon比赛网站推广】
    本文仅用于DataCon比赛的网站推广https://datacon-14284.xyz/,比赛结束后删除。......
  • 使用wxpython开发跨平台桌面应用,设计系统的登录界面
    一般的系统登统界面,设计好看一些,系统会增色不少,而常规的桌面程序,包括Web上的很多界面,都借助于背景图片的效果来增色添彩,本篇随笔介绍基于WxPython来做一个登录界面效果,并对系统登录界面在不同系统上(WIndows和MacOS)进行测试对比,调整最佳的处理方案。1、登录界面的设计如前面所......