微信小程序开发指南:外部JS、CSS引入与模板复用详解

作者:像素漫游时间:2026-10-23 09:52:22浏览:533

本文详细讲解微信小程序中如何引用外部JS文件、引入公共CSS样式以及复用WXML模板。内容涵盖无参模板、带参模板、列表循环渲染及多模板条件切换的实现方式,通过具体代码示例帮助开发者掌握组件化开发的核心技巧。

微信小程序外部资源引用基础

在微信小程序开发中,引用外部JS文件是模块化开发的基础。通过正确引入外部脚本,可以实现代码复用和维护。


//封装的函数
function GetUserInfo2018() {
 console.log("获取用户信息8888")
}
 
function count(str) {
 console.log(str)
}
 
//转化成小程序模板语言 这一步非常重要 不然无法正确调用
module.exports = {
 GetUserInfo2018: GetUserInfo2018,
 count: count
};
 
/*其它页面调用
 var common = require("../common/common.js");
 common.GetUserInfo2018();
 common.count("hehe");
*/

小程序同样支持引入外部CSS样式文件。利用全局样式或局部样式覆盖机制,可以有效管理页面视觉表现,确保样式的一致性与可维护性。


/*
app.wxss是全局样式,作用于每一个页面,
而page下的每一个的wxss文件只作用于当前页面,并对全局样式中的相同属性会覆盖 
*/
@import "../../app.wxss";
/**index.wxss**/
.userinfo {
 display: flex;
 flex-direction: column;
 align-items: center;
}
 
.userinfo-avatar {
 width: 128rpx;
 height: 128rpx;
 margin: 20rpx;
 border-radius: 20%;
}
 
.userinfo-nickname {
 color: #aaa;
}
 
.usermotto {
 margin-top: 200px;
}

WXML模板的定义与调用

除了JS和CSS,微信小程序还允许引用公共页面模板。通过定义和导入模板,开发者可以在多个页面中复用相同的UI结构,提升开发效率。

模板使用分为不带参数和带参数两种情况。首先介绍不带参数的基础用法,即直接调用预设好的模板结构,无需传递额外数据。

实现步骤如下:首先在pages目录下创建template文件夹,并在其中新建template.wxml文件。该文件用于定义模板的基本结构,例如一个简单的视图容器。


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

接着,在需要调用该模板的页面(如index.wxml)中,使用import指令引入template.wxml文件。通过指定template的name属性,即可在当前页面渲染该模板内容。


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

模板参数传递与列表渲染

当模板需要动态展示不同数据时,需采用带参数的调用方式。通过传递data对象,可以将外部数据注入模板内部,实现内容的动态渲染。

修改template.wxml文件,在模板内部添加字段占位符(如{{index}}、{{msg1}}等)。这些占位符将接收从调用页面传递过来的具体数值或字符串。


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

在index.wxml中,通过template标签的data属性传递所需参数。例如,使用data="{{index:1, msg1:'msg1数据', msg2:'msg2数据'}}"的方式,将具体值绑定到模板的对应字段上。


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

在实际开发中,列表渲染是模板应用的常见场景。通过wx:for指令遍历数据数组,并在循环内部调用模板,可以实现列表项的统一样式与结构复用。

具体实现时,先在index.js中定义包含多个对象的数据列表(如包含name和age字段)。然后在index.wxml中使用wx:for遍历该列表,并在每次循环中调用模板,同时通过data属性传递当前项的数据。


//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>

多模板条件切换实现

有时,列表中的不同项目可能需要应用不同的模板样式。例如,根据数据内容的差异(如年龄大小),动态选择展示不同的UI结构。这需要实现多模板切换的逻辑。

为满足上述需求,可以在template.wxml中定义多个模板(如msgItem和msgItem2)。每个模板对应不同的样式或内容结构,以应对多样化的展示需求。

在template.wxml中新增第二个模板msgItem2,其内容与msgItem类似,但可能包含额外的条件展示内容(如“我是一个未成年”的提示文本)。这展示了模板的灵活扩展能力。


<!--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中,通过三元表达式动态指定template的is属性。例如,根据item.age的值判断使用msgItem还是msgItem2,从而实现根据不同数据条件切换不同模板的效果。


<!--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>

综上所述,通过掌握外部JS、CSS的引用以及WXML模板的灵活使用,开发者可以构建出结构清晰、复用性高的小程序应用。希望本文内容能对您的开发工作提供有益参考。

作者最新文章