微信小程序开发极简入门(二):样式,页面,数据

boyanx6天前技术教程2

前文:

微信小程序开发极简入门(一)

样式

wxss:

/**放在页面的wxss**/
.scrollarea {
  flex: 1;
  overflow-y: hidden;
}
.idx_view {
  height: 200rpx;
  background-color: burlywood;
  margin: 20rpx 20rpx 20rpx 20rpx;
}
/**放在app.wxss**/
view {
  background-color: cadetblue;
}
view text{
  color: red;
}

样式没什么好讲的,就是css。

放在app.wxss就是全局样式。

.样式名:只有用class引用才生效。例如.idx_view{...},只有class="idx_view"才起作用。

组件名:直接起作用。例如 view{...},所有view组件都是这个样式。

组件的style属性会覆盖样式。

wxml:

<navigation-bar title="首页" back="{{false}}"></navigation-bar>
<scroll-view class="scroll-view" scroll-y type="list">
  <view>
    <label>页面名称:</label><text style="color: orangered;">看字体颜色</text>
  </view>
</scroll-view>

页面展示JS的Data

wxml:

<!--index.wxml-->
<navigation-bar title="首页" back="{{false}}"></navigation-bar>
<scroll-view class="scroll-view" scroll-y type="list">
  <view class="idx_view">
    <label>页面名称:</label><text style="color: orangered;">{{idxName}}</text>
  </view>
</scroll-view>

js:

Page({
  data: {
    idxName: "首页"
  }
})

注意:如果wxml组件的属性是boolean,例如checked="true",合法。但假值必须写成checked="{{false}}"。


页面修改JS的Data

<navigation-bar title="首页" back="{{false}}"></navigation-bar>
<scroll-view class="scrollarea" scroll-y type="list">
  <label>页面名称:</label><text >{{idxName}}</text>
  <button bind:tap="showMPName" type="primary" >展示小程序名称</button>
</scroll-view>


Page({
  showMPName() {
    const app = getApp();
    wx.showToast({
      title: app.globalData.mpName,
    })
    this.setData({
      idxName: app.globalData.mpName
    })
  },
  data: {
    idxName: "首页"
  }
})

改数据,并且页面同步改,只能通过this.setData({key:value})的方式。

this.data.key=value不行。


双向绑定

前面说的是单向绑定(数据可以影响页面),有时候我们还需要页面的更新能影响到数据&页面。例如:

input输入的内容展示在某个view中,同意协议的多选框勾选后,提交按钮变可用等。

做法有如下:

inputVal(e) {
    console.log(e)
    this.setData({
      bindVal: e.detail.value
    })
  },
  data: {
    idxName: "首页",
    bindVal: "初始内容",
    twBindVal: "",
    ifAgree: false
  }
<view class="idx_view">
    <label>双向绑定内容A:</label><text>{{bindVal}}</text>
    <input type="text" placeholder="请输入内容" catch:input="inputVal" />
  </view>
  <view class="idx_view">
    <label>双向绑定内容B:</label><text>{{twBindVal}}</text>
    <input type="text" placeholder="请输入内容" model:value="{{twBindVal}}" />
  </view>
  <view class="idx_view">
    <checkbox id="ifAgreeCheckBox" model:checked="{{ifAgree}}" /><label for="ifAgreeCheckBox">是否同意</label>
    <button id="submitData" type="primary" disabled="{{!ifAgree}}">提交</button>
  </view>

注意:<label>的for,绑定对应的组件(目前支持button、checkbox、radio、switch、input),代表点击此label时等同点击绑定的组件

标签: iscroll.js

相关文章

作弊技术2——网站劫持(网站劫持软件)

很多站长朋友都知道网站劫持,但是还是有人不知道什么是网站劫持,网站劫持是什么,下面就由小编介绍一下网站劫持的基本内容。一、什么是网站劫持网站劫持就是指在打开一个网址的时候,出现了一个不属于网站范围的广...

登录人人都是产品经理即可获得以下权益

在 2025 年,AI 爬虫领域迎来了全新变革。本文聚焦于 2025AI 爬虫最佳实践,深入实战演示如何运用 Deepseek、Crawl4ai 以及 Playwright MCP 这三大工具组合,实...

不再需要 Javascript 做的五件事(js不需要编译)

作者:黄子毅有些功能用 Javascript 实现吃力不讨好,我们要综合使用技术工具,而不是只依赖 JS。这篇文章就从五个例子出发,告诉我们哪些功能不一定非要用Javascript做。关注 JS 太久...

通过元素属性精准定位 input 元素实现文件上传的完整指南

引言在 Web 自动化测试中,文件上传是一个常见但常令人头疼的功能点。特别是当页面结构复杂,元素属性不明确时,如何精准定位文件上传的 input 元素成为关键挑战。本文将通过一个实际案例,详细介绍如何...

超赞 react.js 自定义虚拟滚动条MagicSroll

前两天有分享一个自己开发的react.js自定义滚动条RScroll。今天再分享一款不错的React滚动条组件MagicScroll.js。react模拟滚动条组件RScrollmagicscroll...

小程序,自定义组件之间的引用,使用插槽扩展组件

接着上篇 小程序,组件与模板对比,及其简单使用 ,这篇我们继续说自定义组件。一.自定义组件之间的调用:首先,先按上篇的步骤建好scroll-comp组件,把index.wxml中的左右滑动图片部分代码...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。