微信小程序基础开发实战 2 页面结构与导航实战

本章我们将深入了解微信小程序的页面结构,并通过实战项目掌握页面管理、导航跳转及导航栏定制的方法。


1 页面创建与管理

在微信小程序中,页面的创建和管理都是通过JSON配置与WXML布局实现的。

实操步骤:

步骤 1:新建页面

在项目根目录,使用微信开发者工具创建页面:

pages
 ├─ index
 └─ about
  • 通过工具新建页面:在开发工具菜单中点击【页面 → 新建页面】,输入页面名如 about 即可自动生成。

  • 手动新建页面:

pages/
  ├─ about/
  │   ├─ about.js
  │   ├─ about.json
  │   ├─ about.wxml
  │   └─ about.wxss

步骤 2:注册页面

app.json中注册页面:

// app.json
{
  "pages": [
    "pages/index/index",
    "pages/about/about"
  ],
  "window": {
    "navigationBarBackgroundColor": "#ffffff",
    "navigationBarTextStyle": "black",
    "navigationBarTitleText": "微信小程序实战"
  }
}

页面简单布局示例:

<!-- pages/about/about.wxml -->
<view class="container">
  <text>关于我们</text>
</view>
/* pages/about/about.wxss */
.container{
  padding: 20px;
  font-size: 18px;
  text-align: center;
}

运行项目即可查看创建的新页面。


2 页面间跳转与导航栏定制

微信小程序提供多种页面跳转方式:

  • wx.navigateTo:跳转到新页面(可返回)。
  • wx.redirectTo:关闭当前页面并跳转(不可返回)。
  • wx.switchTab:跳转到Tab页(仅用于TabBar)。
  • wx.navigateBack:返回上一页。

导航实战示例

index.wxml页面中新增按钮:

<!-- pages/index/index.wxml -->
<view class="container">
  <button bindtap="gotoAbout">跳转到关于页面</button>
</view>

index.js实现页面跳转:

// pages/index/index.js
Page({
  gotoAbout(){
    wx.navigateTo({
      url: '/pages/about/about'
    })
  }
})

定制页面导航栏(在页面的JSON文件中配置):

// pages/about/about.json
{
  "navigationBarTitleText": "关于我们",
  "navigationBarBackgroundColor": "#009688",
  "navigationBarTextStyle": "white"
}

运行小程序并点击按钮,即可跳转并看到定制导航栏效果。
在这里插入图片描述|

3 实战项目:多页面小程序示例(新闻展示页)

下面,我们结合前面所学,以一个简单的新闻展示小程序为实战案例。

项目结构:

pages/
├─ index/
├─ newslist/
└─ newsdetail/

实现步骤:

步骤1:创建页面与注册

在开发者工具中,创建newslistnewsdetail页面,并在app.json注册:

// app.json
{
  "pages": [
    "pages/index/index",
    "pages/newslist/newslist",
    "pages/newsdetail/newsdetail"
  ]
}

步骤2:实现新闻列表页

newslist.wxml

<!-- pages/newslist/newslist.wxml -->
<view class="container">
  <block wx:for="{{newsList}}" wx:key="id">
    <view class="news-item" bindtap="viewDetail" data-id="{{item.id}}">
      <text>{{item.title}}</text>
    </view>
  </block>
</view>

newslist.js

// pages/newslist/newslist.js
Page({
  data: {
    newsList: [
      {id: 1, title: '微信小程序开发教程上线'},
      {id: 2, title: 'ChatGPT 技术实践与应用'},
      {id: 3, title: 'AI行业趋势分析报告'}
    ]
  },
  viewDetail(e){
    let id = e.currentTarget.dataset.id;
    wx.navigateTo({
      url: `/pages/newsdetail/newsdetail?id=${id}`,
    })
  }
})

newslist.wxss

/* pages/newslist/newslist.wxss */
.container{
  padding: 15px;
}
.news-item{
  padding: 10px;
  border-bottom: 1px solid #ddd;
  font-size: 16px;
}

步骤3:实现新闻详情页

newsdetail.js

// pages/newsdetail/newsdetail.js
Page({
  data:{
    newsDetail: {}
  },
  onLoad(options){
    const newsId = options.id;
    const newsData = [
      {id: '1', title: '微信小程序开发教程上线', content: '详细内容1'},
      {id: '2', title: 'ChatGPT 技术实践与应用', content: '详细内容2'},
      {id: '3', title: 'AI行业趋势分析报告', content: '详细内容3'}
    ];
    const detail = newsData.find(news => news.id === newsId);
    this.setData({newsDetail: detail});
  }
})

newsdetail.wxml

<!-- pages/newsdetail/newsdetail.wxml -->
<view class="container">
  <text class="title">{{newsDetail.title}}</text>
  <view class="content">{{newsDetail.content}}</view>
  <button bindtap="back">返回新闻列表</button>
</view>

增加返回按钮功能:

// pages/newsdetail/newsdetail.js
Page({
  // 省略其他代码
  back(){
    wx.navigateBack();
  }
})

newsdetail.wxss

/* pages/newsdetail/newsdetail.wxss */
.container{
  padding: 20px;
}
.title{
  font-size: 20px;
  font-weight: bold;
  margin-bottom: 10px;
}
.content{
  font-size: 16px;
  line-height: 1.6;
}
button{
  margin-top: 20px;
}

步骤4:在首页添加导航

index.wxml页面中新增按钮;
index.js实现页面跳转:
代码参考about页面。


运行效果

  • 点击新闻列表项 → 跳转到新闻详情页;
  • 详情页展示对应新闻内容;
  • 点击返回按钮 → 返回新闻列表。
    请添加图片描述

本章小结:

  • 学习了小程序页面创建与注册方法;
  • 掌握了页面导航跳转方式及导航栏定制;
  • 实战完成了新闻展示多页面小程序示例。

练习题:

  1. 添加『联系我们』页面,实现导航跳转。
  2. 定制『联系我们』页面的导航栏样式。

以上内容可帮助读者通过实际操作,深刻理解微信小程序的页面结构与导航的实战技能,完全可重现并运行测试。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山海青风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值