1、不带参数

首先在pages文件夹中新建一个template文件夹,文件夹中新建一个template.wxml文件,代码如下

<!--template.wxml-->
<template name="msgItem"><view><text>This is template.wxml文件,我是一个模板</text></view>
</template>

然后我们书写我们所要调用template的页面index.wxml

<!--index.wxml-->
<!-- 声明需要使用的模板文件 -->
<import src ="../template/template.wxml"/><view>This is index.wxml</view>
<template is="msgItem"/>

注意:

(1)index.wxml中template 标签的is属性与template.wxml中template 标签的name属性相同

(2)index.wxml文件中要通过import标签声明需要使用的模板文件

运行效果:

2、带参数

首先,修改template.wxml文件,我们给模板添加三个字段,修改后代码如下

<template name="msgItem"><view><text>This is template.wxml文件,我是一个模板</text><view><text> {{index}}: {{msg1}} </text><text> {{msg2}} </text></view></view>
</template>

接下来我们在index.wxml中传递模板中所需要的三个参数,修改后的代码如下:

<!--index.wxml-->
<!-- 声明需要使用的模板文件 -->
<import src ="../template/template.wxml"/>
<view>This is index.wxml</view>
<template is="msgItem" data="{{index:1,msg1:'msg1数据',msg2:'msg2数据'}}"/>

运行效果:

3、列表item模板

接下来我们就通过一种常见的情况列表数据来使用模板,增加对模板的认知,直接上修改过的代码:

//index.js
Page({data: {list:[{ name: '张三', age: 15 },{ name: '李四', age: 25 },{ name: '王五', age: 18 },{ name: '赵六', age: 19 },]}
})
<!--index.wxml-->
<!-- 声明需要使用的模板文件 -->
<import src ="../template/template.wxml"/>
<view>This is index.wxml</view>
<view wx:for="{{list}}"><template is="msgItem" data="{{name:item.name,age:item.age}}"/>
</view>
<!--template.wxml-->
<template name="msgItem"><view><text> name: {{name}} </text><text> age: {{age}}</text></view>
</template>

运行效果:

4、使用模板样式

接下来我们就给模板增加样式文件,然后在需要调用模板的地方使用该样式。

首先在pages/template文件夹中新建一个template.wxss文件,然后对模板文件,添加一个简单样式。

<!--template.wxml-->
<template name="msgItem"><view class="template_style"><text> name: {{name}} </text><text class="template_age_style"> age: {{age}}</text></view>
</template>
/* pages/template/template.wxss */
.template_style{border-bottom: solid 2px #999999;padding: 5px;font-size: 18px;color: #000000;}
.template_age_style{color: #666666;font-size: 14px;
}

我们的样式文件已经创建好了,接下来在index.wxml中引入该样式文件。

/**index.wxss**/
@import "../template/template.wxss";

运行效果:

5、调用不同的模板

有时候,我们有这样的需求,那就是同一个列表中,item数据不同,可能他的样式也是有很大的区别,所以我们使用的模板也会对应不相同,接下来我们就来实现这样需求的小Demo: 
首先修改了一下template.wxml,原本该文件中只有一个template,现在我们创建了两个,新增的template仅仅多了一行代码,当然了实际开发中,需求会比这个难很多,在这里只是为了实现Demo。

<!--template.wxml-->
<template name="msgItem"><view class="template_style"><text> name: {{name}} </text><text class="template_age_style"> age: {{age}}</text></view>
</template>
<template name="msgItem2"><view class="template_style"><text> name: {{name}} </text><text class="template_age_style"> age: {{age}}</text><text>我是一个未成年</text>></view>
</template>

接下来我们在index.wxml中通过age字段调用不同的模板:

<!--index.wxml-->
<!-- 声明需要使用的模板文件 -->
<import src ="../template/template.wxml"/>
<view>This is index.wxml</view>
<view wx:for="{{list}}"><template is="{{item.age >= 18 ? 'msgItem' : 'msgItem2'}}" data="{{name:item.name,age:item.age}}"/>
</view>

运行效果:

微信小程序 引入公共页面的几种情况相关推荐

  1. 微信小程序更新webview页面的三种方法

    场景 在小程序其它页面做了操作,数据发生改变,回到webview页面时需要更新webview里面的数据.由于小程序没有提供与webview的实时通信能力,因此刷新页面是个可考虑的做法. 方法一 最常见 ...

  2. 原生微信小程序引入公共方法(js文件)@令狐张豪

    我们在写小程序的时候有很多方法是公共调用的,我们可以建一个公共的js文件然后去调用它. 1. 创建utils目录并创建util.js文件 2. 写入我们的公共代码 const baseUrl = 'x ...

  3. 微信小程序跳转页面的几种方式,值得收藏

    一:js实现 1.保留当前页面,跳转到应用内的某个页面 wx.navigateTo({url: '/pages/wode/wode?param=2323' }) 2.switchTab (没有返回键, ...

  4. 微信小程序引入less并引入公共样式

    微信小程序引入less并引入公共样式 在原生微信小程序开发中,直接使用wxss来写组件样式是非常麻烦的,它不能进行嵌套书写,也不能声明变量,所以我们经常会引入一些css编译器来辅助我们书写样式,例如l ...

  5. 微信小程序引入骨架屏组件

    微信小程序引入骨架屏组件 参考地址:https://github.com/cytle/ma-skeleton.git 1.克隆项目 2.把项目里的组件skeleton文件复制到自己的项目里 3.复制& ...

  6. 微信小程序内含H5页面实现方式

    微信小程序内含H5页面实现方式 一.背景 众所周知,我们写完小程序,发到线上,是需要经历设置版本.提交代码审核.等待审核等步骤,放一个版本下来可能花费很多的时间,甚至很可能等待了很长时间,审核未通过, ...

  7. 微信小程序引入vant-weapp组件遇到的bug以及解决方法

    微信小程序引入vant-weapp组件遇到的bug问题 原本百度了一波,说只要安装了node还有npm之后,使用gitBash命令行工具直接cd到根目录下然后直接引入以下代码: npm i vant- ...

  8. 微信小程序定义公共方法

    微信小程序定义公共方法还是很简单的,一个三步创建,引入,使用 1.创建 在page创建文件夹utils,在创建文件utils.js,看下我的 在utils.js中定义你的方法,然后导出 2.引入 在你 ...

  9. 微信小程序引入iview weapp

    微信小程序引入iview weapp 1. 下载iview 方式1:前往github下载 iview下载地址 方式2:在项目中通过npm引入 2. 引入下载好的文件 解压文件,目录如下 将其中的dis ...

最新文章

  1. solaris与linux区别,solaris与linux命令的区别
  2. 编程理论:多态,继承,和开闭原则
  3. 完美解决tomcat/springboot启动速度相当慢 快死的状态了
  4. linux 远程图形终端,图形终端远程操作Linux
  5. 计算机管理设置,win10系统打开计算机管理的设置步骤
  6. php抽象方法db,PHP笔记之抽象方法抽象类
  7. Java实现ActiveMQ之队列的生产者和消费者(一)
  8. JAVA零碎要点015---java BigDecimal常见操作_加减乘除操作_比较_取几位小数四舍五入_随时更新
  9. 5.3.2 先行发生
  10. html转pdf分页问题
  11. cgi/fastcgi停止工作
  12. 计算机提示无法识别优盘,插入U盘显示无法识别怎么办
  13. Evolutionary Acyclic Graph Partition
  14. matlab信道容量函数,信息论-matlab求信道容量(迭代法) | 学步园
  15. uniapp 使用map组件 动态自定义标记点图标及内容文字
  16. KernelSU: 内核 ROOT 方案, KernelSU KernelSU KernelSU 新的隐藏root防止检测 封号方案
  17. LeetCode NO7. 整数反转
  18. GetKeyState、GetAsyncKeyState、GetKeyboardState函数的区别 以及虚拟键值
  19. 一阶电路实验报告心得_rc一阶电路的响应测试心得体会
  20. 自京赴奉先县咏怀五百字

热门文章

  1. 6000毫安以上智能手机_三星超长续航神机,6000毫安+128GB,上市半年不到跌至1499...
  2. 《计算机网络自顶向下》之重头戏迪杰斯特拉算法
  3. linux 内核移植和根文件系统的制作【转载】
  4. Ajax 生成流文件下载 以及复选框的实现
  5. 重载和重写以及重写的权限问题
  6. 计算机应用基础课程基本要求,计算机应用基础课程标准
  7. docker 查看日志_8个优秀Docker容器监控工具,收藏了
  8. Windows Socket 编程_ 简单的服务器/客户端程序
  9. 搜索时,怎样排除不需要的关键字
  10. Win10+Ubuntu16.04/Ubuntu18.04双系统安装教程