1. <template>
    2. <view class= 'news'>
    3. <news-item :list='newslist'></news-item>
    4. </view>
    5. </template>
    6. <script>
    7. import newsItem from '../../components/news-item/news-item'
    8. export default {
    9. data() {
    10. return {
    11. newslist:[]
    12. }
    13. },
    14. components:{
    15. "news-item":newsItem
    16. },
    17. methods: {
    18. async getNews (){
    19. const res = await this.$myRequest({
    20. url:'/api/getnewslist'
    21. })
    22. this.newslist = res.data.message
    23. console.log(this.newslist)
    24. }
    25. },
    26. onLoad(){
    27. this.getNews()
    28. }
    29. }
    30. </script>
    31. <style lang='scss'>
    32. .news{
    33. }
    34. </style>

    这个是new的列表,另外我们可以讲新闻这个页面进行封装

    1. <template>
    2. <view>
    3. <view class='news_item' v-for='item in list' :key='item.id'>
    4. <image :src='item.img_url'></image>
    5. <view class='right'>
    6. <view class='tit'>
    7. {{item.title}}
    8. </view>
    9. <view class='info'>
    10. <text>发表时间:{{item.add_time}}</text>
    11. <text>浏览:{{item.click}}</text>
    12. </view>
    13. </view>
    14. </view>
    15. </view>
    16. </template>
    17. <script>
    18. export default{
    19. props:['list']
    20. }
    21. </script>
    22. <style lang='scss'>
    23. .news_item{
    24. display: flex;
    25. padding:10rpx 20rpx;
    26. border-bottom:1px solid $shop-color;
    27. image{
    28. min-width:200rpx;
    29. max-width: 200rpx;
    30. height:150rpx;
    31. border:1px dashed #007AFF;
    32. }
    33. .right{
    34. margin-left:15rpx;
    35. display: flex;
    36. flex-direction: column;
    37. justify-content: space-between;
    38. .tit{
    39. font-size: 33rpx;
    40. }
    41. .info{
    42. font-size: 25rpx;
    43. text:nth-child(2){
    44. margin-left:30rpx;
    45. }
    46. }
    47. }
    48. }
    49. </style>

    封装的步骤

    • 在componments的组件文件夹下新建组件
    • 利用props来获取传过来的变量
    • 使用的时候需要导入另外要在组件里面注册