微信小程序-主页面显示

1.主要代码

list.wxml文件

  采用import引入list-template.wxml,使用swiper实现轮播,indicator-dots用于显示面板指示点,indicator-active-color用于当前选中的指示点颜色。wx:for用于遍历。

<!--pages/list/list.wxml-->
<import src='/pages/template/list-template.wxml'/>
<view>
  <!-- 轮播图 -->
  <swiper catchtap="carouselToDetail" indicator-dots indicator-color="yellowgreen" indicator-active-color="pink">
    <swiper-item>
      <image data-id='1' src="/images/detail/carousel/01.jpg"></image>
    </swiper-item>
    <swiper-item>
      <image data-id='0' src="/images/detail/carousel/02.jpg"></image>
    </swiper-item>
    <swiper-item>
      <image data-id='2' src="/images/detail/carousel/03.jpg"></image>
    </swiper-item>
    <swiper-item>
      <image data-id='3' src="/images/detail/carousel/04.jpg"></image>
    </swiper-item>
  </swiper>
  <!-- 内容列表 -->
  <block wx:for='{{listArr}}' wx:key='{{item.id}}'>
    <view catchtap='toDetail' data-id='{{item.id}}'>
      <template is="listTmp" data='{{...item}}'/>
    </view>
  </block>
</view>

list.js文件

  该文件主要使用了target(用于触发事件的元素),currentTarget(用于绑定事件的元素),注意两者的区别。同时引入数据不能使用绝对路径,只能使用相对路径

let datas = require('../../datas/list-data.js') //不能用绝对路径,只能用相对路径
Page({

  //页面的初始数据
  data: {
    listArr: []
  },

  //生命周期函数--监听页面加载
  onl oad: function (options) {
    this.setData({
      listArr: datas.list_data
    })
  },

  //点击跳转到detail详情页
  toDetail(event){
    console.log(event)
    let id = event.currentTarget.dataset.id; //获取点击跳转对应的下标
    wx.navigateTo({  //跳转到相应页面(保留当前页面) 而wx.redirectTo()是跳转后不保留当前页面
      url:'/pages/detail/detail?id='+id,
    })
  },
  //点击轮播图跳转
  carouselToDetail(event){
    let id = event.target.dataset.id;  //target和currentTarget的区别
    wx.navigateTo({  //跳转到相应页面(保留当前页面) 而wx.redirectTo()是跳转后不保留当前页面
      url:'/pages/detail/detail?id='+id,
    })
  }
})

list-template.wxml

  定于i每一个列表项的模板,并将该文件引入到list.wxml中,同时将list-template.css引入到list.css中,只不过不同的引入方法。

list-template.wxml: <import src='/pages/template/list-template.wxml'/> list-template.css: @import '/pages/template/list-template.wxss';
<template name='listTmp'>
  <view class="tempContainer">
      <view class="avatar_date">
          <image src="{{avatar}}"></image>
          <text>{{date}}</text>
      </view>
      <text class='company'>{{title}}}</text>
      <image class='contentImg' src="{{detail_img}}"></image>
      <text class='content'>{{detail_content}}</text>
      <view class='collection_love'>
          <image src="/images/icon/star.png"></image>
          <text>{{love_count}}</text>
          <image src="/images/icon/view.png"></image>
          <text>{{attention_count}}</text>
      </view>
  </view>
</template>
上一篇:【Python pyppeteer爬虫实战】抓取纵横小说图书信息,并存储到MySQL数据库


下一篇:浅析vue-router中params和query的区别