当前位置: 首页 > news >正文

微信小程序入门与实战之阅读列表与setData数据的绑定

LinUI组件库介绍

https://doc.mini.talelin.com/
Lin UI 是基于 微信小程序原生语法 实现的组件库。遵循简洁,易用的设计规范。

安装、编译LinUI

https://doc.mini.talelin.com/start/

通过npm引入LinUI,有如图所示的文件夹就表示引入成功:
在这里插入图片描述

但我们这时候并不能直接使用,要先在微信开发者工具选项找到构建npm,并点击:
在这里插入图片描述
完成构建后会生成一个叫做miniprogram_npm的文件夹,我们开发微信小程序使用的LinUI组件直接来源于这个文件夹:
在这里插入图片描述

如何使用自定义组件

这里我们用LInui组件中的avatar举例,首先我们不能像直接使用原生组件那样直接引用,先要在所在页面的json文件下的usingComponents里配置:

{
  "usingComponents": 
  {
    "l-avatar" :"/miniprogram_npm/lin-ui/avatar/index"
  }
}

在这里插入图片描述

接着我们就可以使用我们配置的名称来使用组件:

  <l-avatar></l-avatar>

avatar头像和昵称组件

在这里插入图片描述

  <l-avatar  class="l-avatar" placement="bottom" shape="circle"  open-data="
  {{['userAvatarUrl','userNickName']}}" size="180"/>

实现效果:
在这里插入图片描述
通过open-data接收数组,通过传入userAvatarUrl、userNickName控制显示用户头像和昵称。不过目前好像已经被微信官方废弃。
https://developers.weixin.qq.com/community/develop/doc/000e881c7046a8fa1f4d464105b001?blockType=1&page=2#comment-list
为了实现头像距离顶部的效果,我们需要再自己写一个class:

.l-avatar{
  margin-top: 160rpx;
}

最终效果:
在这里插入图片描述

添加新的编译模式实现在编译器中页面的快速切换

新建一个posts页面,同样使用new page快速创建:
在这里插入图片描述
在我们还没有完成代码的前提下,该怎么能看到页面效果呢:

  1. 设置app.json中pages数组的第一项为你想要查看的页面
  2. 同样在app.json下设置entryPagePath为你想要查看的页面

在这里插入图片描述

  1. 添加新的编译模式:

在这里插入图片描述
我们可以通过编译模式来快速切换不同的页面:
在这里插入图片描述

初步了解Swiper和Swiper-Item

在posts页面顶部导航栏背景颜色我们需要红色,除了启动页的其他页面也要用到红色,所以我们就只需要单独为welcome页面设置一个背景颜色,在app,json设置所有的页面顶部导航栏默认为红色。
在这里插入图片描述
在这里插入图片描述

swiper:滑块视图容器。其中只可放置swiper-item组件,否则会导致未定义的行为。
swiper:仅可放置在swiper组件中,宽高自动设置为100%。

Swiper组件通过插槽设置轮播内容

由于我们只能在swiper中使用swiper-item,所以如果想实现自定义的轮播效果,就要在swiper-item中嵌套布局,我们称之为插槽。但我们如果仅仅是设置src属性,我们并不能看到很多的效果,图片没办法扩展到整个屏幕的宽度。

<view>
  <swiper>
  <swiper-item>
    <image src="/images/bestplayers.png"></image>
  </swiper-item>
  <swiper-item>Content</swiper-item>
  <swiper-item>Content</swiper-item>
  </swiper>
</view>

在这里插入图片描述

Swiper组件内容的高宽设置技巧

为了实现比较好的效果,我们需要对swiper和swiper-item下的image设置属性:

swiper{
  width: 100%;
  height: 460rpx;
}
swiper image{
  width: 100%;
  height: 460rpx;
}
<view>
  <swiper >
  <swiper-item>
    <image src="/images/bestplayers.jpg"></image>
  </swiper-item>
  <swiper-item>
    <image src="/images/bestplayers.jpg"></image>
  </swiper-item>
  <swiper-item>
    <image src="/images/bestplayers.jpg"></image>
  </swiper-item>
  </swiper>
</view>

在这里插入图片描述

属性设置一定要注意字符串以JS表达式的区别

我们通过设置indicator-dots="true"可以实现显示指示点,通过设置 autoplay="true"来实现自动播放:

<view>
  <swiper indicator-dots="true" autoplay="true">
  <swiper-item>
    <image src="/images/bestplayers.jpg"></image>
  </swiper-item>
  <swiper-item>
    <image src="/images/bestplayers.jpg"></image>
  </swiper-item>
  <swiper-item>
    <image src="/images/bestplayers.jpg"></image>
  </swiper-item>
  </swiper>
</view>

在这里我们有一点要特别注意,那就是字符串以JS表达式的区别,当我们设置indicator-dots=“false"的时候我们发现轮播图还是有指示点,如果要取消指示点可以通过删除indicator-dots这个属性,因为默认的是没有指示点,若想要通false来实现则要使用indicator-dots=”{{false}}",因为在javascript中字符串代表true,空字符串代表false。
在这里插入图片描述
在这里插入图片描述
字符串代表true,所以就算我们随便输入一个字符串,都还是会实现有指示器的效果:
在这里插入图片描述

布尔属性值赋值的良好建议

在设置布尔属性的时候最好都要加上双花括号,则花括号里面的值会被当做JavaScript去计算,若我们在双花括号里面写上0,则表示的是false。当我们的属性要标记为true的时候,我们可以只写这个属性,默认标记为true。

Swiper组件的其他重要属性设置

在swiper下设置vertical属性可以实现指示点的竖直显示和竖直滑动:
在这里插入图片描述
通过设置circular可以实现循环滑动,通过interval实现自动切换时间间隔(默认值为5000ms)

用Flex布局组织布局思路

我们要实现的效果:
在这里插入图片描述

先思考是要水平还是垂直布局,新闻列表是从上往下的垂直布局,由行构成垂直布局。每个新闻总共有五行,头像一行,标题一行,图片一行,概述一行,收藏一行。开始码代码:

  <view>

    <view>
      <image></image>
      <text></text>
    </view>
     
    <text></text>

    <image></image>

    <text></text>

    <view></view>
  </view>

相关文章:

  • springboot教室实验室预约系统在线视频点播系统毕业设计毕设作品开题报告开题答辩PPT
  • Go数据结构
  • Vue学习---插槽篇
  • .NET教程 - 字符串 编码 正则表达式(String Encoding Regular Express)
  • Yii - [新]项目开发流程指南
  • 优秀的你在哪里?《阿里云SLS团队2023校园招聘》
  • 【图像分类】基于matlab多种特征结合支持向量机脑MRI肿瘤分类【含Matlab源码 2149期】
  • 06-使用pytorch实现手写数字识别
  • 高级特效开发阶段学习总结
  • WPF 简单的ComboBox自定义样式。
  • Servlet 规范和 Servlet 容器
  • 切面的优先级、基于XML的AOP实现
  • 【Java面试宝典】常用类中的方法重写|equals方法与逻辑运算符==的区别
  • 重构的原则
  • Restyle起来!
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • js对象的深浅拷贝
  • react-core-image-upload 一款轻量级图片上传裁剪插件
  • React组件设计模式(一)
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • Vue.js 移动端适配之 vw 解决方案
  • web标准化(下)
  • Web标准制定过程
  • 闭包--闭包作用之保存(一)
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 给新手的新浪微博 SDK 集成教程【一】
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 利用DataURL技术在网页上显示图片
  • 买一台 iPhone X,还是创建一家未来的独角兽?
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 通过调用文摘列表API获取文摘
  • ​渐进式Web应用PWA的未来
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • #Java第九次作业--输入输出流和文件操作
  • #Ubuntu(修改root信息)
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (二)丶RabbitMQ的六大核心
  • (蓝桥杯每日一题)love
  • (转)Linux NTP配置详解 (Network Time Protocol)
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • .NET 同步与异步 之 原子操作和自旋锁(Interlocked、SpinLock)(九)
  • .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)
  • .NET多线程执行函数
  • .net分布式压力测试工具(Beetle.DT)
  • .NET企业级应用架构设计系列之应用服务器
  • /dev下添加设备节点的方法步骤(通过device_create)
  • /etc/X11/xorg.conf 文件被误改后进不了图形化界面
  • [ MSF使用实例 ] 利用永恒之蓝(MS17-010)漏洞导致windows靶机蓝屏并获取靶机权限
  • [ 常用工具篇 ] AntSword 蚁剑安装及使用详解
  • []串口通信 零星笔记
  • [1525]字符统计2 (哈希)SDUT
  • [ANT] 项目中应用ANT