详解微信小程序中的页面代码中的模板的封装

作者:京雒尘 时间:2024-04-29 13:40:35 

详解微信小程序中的页面代码中的模板的封装

    最近在进行微信小程序中的页面开发,其实在c++或者说是js中都会出现这种情况,就是相同的代码会反复出现,这就是进行一定的封装,封装的好处就是可以是程序中在于减少一定的代码量,并且可是使代码结构更加清晰。那今天所要记录的就是关于微信小程序中的页面的模板封装。

         在微信小程序中的文件名都带有wxml等样式,在wxml中提供了模板,即可以在模板中定义代码片段,然后可以在页面中的不同位置进行调用,模板的定义:


<templatename="products">

<blockwx:for="{{productsData}}">

<view
class="product-desc">

<view
class="product-cun">有货</view>

<view
class="product-name">{{item.name}}</view>

<view
class="product-price">¥{{item.price}}</view>

</view>

</block>

</template>

name主要就是给封装好的模板进行命名,因为可能模板文件中不一定就只存在这一个模板,所以命名化可以方便区分哪个是要引入的模板。

wx:for就是微信小程序中的循环,里面就是要循环的数组数据,这个值是可以在引入模板的时候进行引入赋值的。

模板的导入:


<import src=""/>---要找到要引入的模板文件路径,这里面的路径写相对路径会很方便

模板的使用:


<template
is="products"
data="{{productsData}}"/>

is的作用就是在模板文件中选择要使用的具体是哪个模板

data主要就是模板中要使用的数组数据

这里面就是出现一个问题,由于你的模板文件中的数组是写死的,使用的是productData,那么在你引入模板之后对里面的数据进行赋值使用的时候可能会出现


VM1171:2 ./pages/theme/theme.wxml
Bad attr 'data' with message
 6 |  </view>
 7 |  <view class="theme-products">
> 8 |   <template is="products" data="{{theme_products[themeid]}}"/>
  |                 ^
 9 |  </view>
10 | </view>
11 |

像这种在模板中的数据被定义死的话,也是可以有解决办法的,我所使用的办法就是给已经被赋值好的数组进行重新赋值
可以在新的页面js中对productsData数组进行空的初始化,然后在onLoad第一次进行页面,进行加载页面的时候给予赋值,data.kind_products是这个页面要使用到的数组对象

1)js文件中的data{productsData:null}
2)第一次进入页面的时候


onLoad: function (options) {
 this.setData({ productsData: this.data.kind_products[0]});
}

setData的作用就是用于将数据从逻辑层发送到视图层也就是页面上,同时改变this.data的值

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

来源:http://blog.csdn.net/luohe1234/article/details/78048413

标签:微信小程序,模板封装
0
投稿

猜你喜欢

  • 详解解Django 多对多表关系的三种创建方式

    2021-03-13 04:59:16
  • windows下python和pip安装教程

    2022-04-07 13:00:44
  • python多线程方法详解

    2023-10-16 02:46:31
  • 树莓派4B+opencv4+python 打开摄像头的实现方法

    2021-05-04 12:09:37
  • python中单下划线(_)和双下划线(__)的特殊用法

    2022-08-09 22:23:22
  • 关于字体的一些思考

    2008-03-03 12:53:00
  • 简易的全屏透明遮罩(lightBox)

    2010-06-09 20:56:00
  • SQL函数将某个字段合并在一起的操作

    2024-01-23 10:11:07
  • MySQL数据库中CHAR与VARCHAR之争

    2011-05-05 16:33:00
  • JAVA及PYTHON质数计算代码对比解析

    2023-08-29 23:41:31
  • golang 跳出for循环操作

    2024-04-30 10:04:00
  • jenkins自动构建发布vue项目的方法步骤

    2024-04-30 10:47:14
  • GOLANG使用Context实现传值、超时和取消的方法

    2024-05-22 10:13:13
  • 解决Element中el-date-picker组件不回填的情况

    2024-04-09 11:00:47
  • Flash如何连接Mysql

    2010-11-11 11:57:00
  • Python排序算法之插入排序及其优化方案详解

    2021-04-03 05:39:31
  • 如何判断js脚本加载完成

    2008-11-04 13:53:00
  • vue+elementUi图片上传组件使用详解

    2024-05-10 14:14:49
  • Python Pandas工具绘制数据图使用教程

    2023-02-08 01:16:40
  • Java 如何使用JDBC连接数据库

    2024-01-23 04:30:12
  • asp之家 网络编程 m.aspxhome.com