在微信小程序中写一个新闻列表
时间: 2023-05-28 11:03:28 浏览: 102
1. 首先,需要在小程序的 app.json 文件中添加一个页面:
```
"pages": [
"pages/news/news"
],
```
2. 创建一个 news 页面,包含一个列表和新闻项组件。在 news.wxml 文件中添加以下代码:
```
<view class="news-list">
<block wx:for="{{newsList}}" wx:key="index">
<news-item title="{{item.title}}" date="{{item.date}}" cover="{{item.cover}}" url="{{item.url}}" />
</block>
</view>
```
3. 在 news 页面的 js 文件中,定义数据和获取新闻列表的方法:
```
Page({
data: {
newsList: [] // 新闻列表
},
onLoad: function () {
// 获取新闻列表
wx.request({
url: 'https://api.example.com/news',
success: res => {
this.setData({
newsList: res.data
})
}
})
}
})
```
4. 创建一个 news-item 组件,用于显示单个新闻项。在 news-item.wxml 文件中添加以下代码:
```
<view class="news-item">
<image class="news-cover" src="{{cover}}" mode="aspectFill" />
<view class="news-info">
<view class="news-title">{{title}}</view>
<view class="news-date">{{date}}</view>
</view>
</view>
```
5. 在 news-item 组件的 js 文件中,定义属性和点击事件:
```
Component({
properties: {
title: String,
date: String,
cover: String,
url: String
},
methods: {
onTap: function () {
// 点击跳转到新闻详情页
wx.navigateTo({
url: '/pages/news/detail?url=' + encodeURIComponent(this.data.url)
})
}
}
})
```
6. 创建一个 news-detail 页面,用于显示新闻详情。在 news-detail 页面的 js 文件中,获取 url 参数并在页面中显示新闻内容:
```
Page({
data: {
content: '' // 新闻内容
},
onLoad: function (options) {
// 获取新闻内容
wx.request({
url: decodeURIComponent(options.url),
success: res => {
this.setData({
content: res.data
})
}
})
}
})
```
以上就是一个简单的微信小程序新闻列表的实现。需要注意的是,实际开发中需要处理一些异常情况,例如请求失败、没有数据等。
阅读全文