生命是一条奔流不息的河,我们都是那个过河的人。——席慕蓉
官网
我们直接实战
创建两个项目
从hello-uniapp
中复制common
文件夹以及static
下面的uni.ttf
文件到news
项目同目录下
然后是复制App.vue
中的样式库
<script>
export default {
onLaunch: function() {
console.log('App Launch')
},
onShow: function() {
console.log('App Show')
},
onHide: function() {
console.log('App Hide')
}
}
</script>
<style>
/*每个页面公共css */
/* #ifndef APP-PLUS-NVUE */
/* uni.css - 通用组件、模板样式库,可以当作一套ui库应用 */
@import './common/uni.css';
/* H5 兼容 pc 所需 */
/* #ifdef H5 */
@media screen and (min-width: 768px) {
body {
overflow-y: scroll;
}
}
/* 顶栏通栏样式 */
/* .uni-top-window {
left: 0;
right: 0;
} */
uni-page-body {
background-color: #F5F5F5 !important;
min-height: 100% !important;
height: auto !important;
}
.uni-top-window uni-tabbar .uni-tabbar {
background-color: #fff !important;
}
.uni-app--showleftwindow .hideOnPc {
display: none !important;
}
/* #endif */
/* 以下样式用于 hello uni-app 演示所需 */
page {
background-color: #efeff4;
height: 100%;
font-size: 28rpx;
line-height: 1.8;
}
.fix-pc-padding {
padding: 0 50px;
}
.uni-header-logo {
padding: 30rpx;
flex-direction: column;
justify-content: center;
align-items: center;
margin-top: 10rpx;
}
.uni-header-image {
width: 100px;
height: 100px;
}
.uni-hello-text {
color: #7A7E83;
}
.uni-hello-addfile {
text-align: center;
line-height: 300rpx;
background: #FFF;
padding: 50rpx;
margin-top: 10px;
font-size: 38rpx;
color: #808080;
}
/* #endif*/
</style>
新闻列表页面代码index.vue
<template>
<view class="content">
<view class="uni-list">
<view class="uni-list-cell" hover-class="uni-list-cell-hover" v-for="(item,index) in news" :key="index">
<!-- <navigator url="../info/info"> -->
<view @tap="openInfo" :data-newsid="item.post_id" class="uni-list-cell">
<image class="uni-media-list-logo" :src="item.author_avatar"></image>
<view class="uni-media-list-body">
<view class="uni-media-list-text-top">{{item.title}}</view>
<view class="uni-media-list-text-bottom uni-ellipsis">{{item.created_at}}</view>
</view>
</view>
<!-- </navigator> -->
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
news: []
}
},
onLoad() {
uni.showLoading({
title: '加载中...'
});
uni.request({
url: 'https://unidemo.dcloud.net.cn/api/news',
method: 'GET',
data: {},
success: res => {
console.log(res)
this.news = res.data
uni.hideLoading()
},
fail: () => {},
complete: () => {}
});
},
methods: {
openInfo(e) {
var newsid = e.currentTarget.dataset.newsid;
console.log(newsid);
uni.navigateTo({
url: '../info/info?newsid=' newsid
});
}
}
}
</script>
<style>
.uni-media-list-body {
height: auto;
}
.uni-media-list-text-top {
list-style: 1.6em;
}
</style>
然后在pages
下新建详情页
然后编写info.vue
<template>
<view class="content">
<view class="title">{{title}}</view>
<view class="art-content">
<rich-text class="richText" :nodes="strings"></rich-text>
</view>
</view>
</template>
<script>
export default {
data() {
return {
title: '',
strings: ''
}
},
onLoad: function(e) {
uni.showLoading({
title: '加载中...'
});
uni.request({
url: 'https://unidemo.dcloud.net.cn/api/news/36kr/' e.newsid,
method: 'GET',
data: {},
success: res => {
console.log(res)
this.title = res.data.title
this.strings = res.data.content
uni.hideLoading()
},
fail: () => {},
complete: () => {}
});
},
methods: {
}
}
</script>
<style>
.content {
padding: 10upx 2%;
width: 96%;
flex-wrap: wrap;
}
.title {
line-height: 2em;
font-weight: 700;
font-size: 38upx;
}
.art-content {
list-style: 2em;
}
</style>
最后
效果
详情