【微信小程序】WXML WXSS JS

目录

🍓小程序代码的构成 - WXML 模板

1. 什么是 WXML

2. WXML 和 HTML 的区别

🍇小程序代码的构成 - WXSS 样式

1. 什么是 WXSS

2. WXSS 和 CSS 的区别

🍒小程序代码的构成 - JS 逻辑交互

1. 小程序中的 .js 文件

2. 小程序中 .js 文件的分类


🍓小程序代码的构成 - WXML 模板

1. 什么是 WXML

WXML(WeiXin Markup Language)是小程序框架设计的一套 标签语言 用来构建小程序页面的结构 ,其作用类似于网页开发中的 HTML。

2. WXML 和 HTML 的区别

标签名称不同
HTML (div, span, img, a)
WXML(view, text, image, navigator)
属性节点不同
  <a href ="#">超链接</a>
<navigator url ="/pages/home/home"></navigator>
提供了类似于 Vue 中的模板语法
数据绑定
列表渲染
条件渲染
<view>aaa</view>
<view>aaa</view>
<div>aaa</div>
<div>aaa</div>

 

 div标签在小程序中不能换行了

🍇小程序代码的构成 - WXSS 样式

1. 什么是 WXSS

WXSS (WeiXin Style Sheets)是一套 样式语言 ,用于描述 WXML 的组件样式,类似于网页开发中的 CSS。

2. WXSS 和 CSS 的区别

新增了 rpx 尺寸单位
  CSS 中需要手动进行像素单位换算,例如 rem
  WXSS 在底层支持新的尺寸单位 rpx,在不同大小的屏幕上小程序会自动进行换算
提供了全局的样式和局部样式
  项目根目录中的 app.wxss 会作用于所有小程序页面
  局部页面的 .wxss 样式仅对当前页面生效
WXSS 仅支持部分 CSS 选择器
  .class 和 #id
  element
并集选择器、后代选择器
  ::after 和 ::before 等伪类选择器
当然你可以把HTML和CSS放入小程序中:
效果:

HTML(放入WXML中): 
<!--pages/tsj/tsj.wxml-->

<button class="c-button c-button--gooey"> Hover me
  <div class="c-button__blobs">
  <div></div>
  <div></div>
  <div></div>
  </div>
</button>
<svg style="display: block; height: 0; width: 0;" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <defs>
    <filter id="goo">
      <feGaussianBlur result="blur" stdDeviation="10" in="SourceGraphic"></feGaussianBlur>
      <feColorMatrix result="goo" values="1 0 0 0 0  0 1 0 0 0  0 0 1 0 0  0 0 0 18 -7" mode="matrix" in="blur"></feColorMatrix>
      <feBlend in2="goo" in="SourceGraphic"></feBlend>
    </filter>
  </defs>
</svg>
CSS(放入WXSS中):
/* pages/tsj/tsj.wxss */
/* From www.lingdaima.com */
.c-button {

  color: #000;
  font-weight: 700;
  font-size: 16px;
  text-decoration: none;
  padding: 0.9em 1.6em;
  cursor: pointer;
  display: inline-block;
  vertical-align: middle;
  position: relative;
  z-index: 1;
 }
 
 .c-button--gooey {
  color: #06c8d9;
  text-transform: uppercase;
  letter-spacing: 2px;
  border: 4px solid #06c8d9;
  border-radius: 0;
  position: relative;
  transition: all 700ms ease;
 }
 
 .c-button--gooey .c-button__blobs {
  height: 100%;
  filter: url(#goo);
  overflow: hidden;
  position: absolute;
  top: 0;
  left: 0;
  bottom: -3px;
  right: -1px;
  z-index: -1;
 }
 
 .c-button--gooey .c-button__blobs div {
  background-color: #06c8d9;
  width: 34%;
  height: 100%;
  border-radius: 100%;
  position: absolute;
  transform: scale(1.4) translateY(125%) translateZ(0);
  transition: all 700ms ease;
 }
 
 .c-button--gooey .c-button__blobs div:nth-child(1) {
  left: -5%;
 }
 
 .c-button--gooey .c-button__blobs div:nth-child(2) {
  left: 30%;
  transition-delay: 60ms;
 }
 
 .c-button--gooey .c-button__blobs div:nth-child(3) {
  left: 66%;
  transition-delay: 25ms;
 }
 
 .c-button--gooey:hover {
  color: #fff;
 }
 
 .c-button--gooey:hover .c-button__blobs div {
  transform: scale(1.4) translateY(0) translateZ(0);
 }

🍒小程序代码的构成 - JS 逻辑交互

1. 小程序中的 .js 文件

一个项目仅仅提供界面展示是不够的,在小程序中,我们通过 .js 文件来处理用户的操作。例如:响应用户的点击、获取用户的位置等等。

2. 小程序中 .js 文件的分类

小程序中的 JS 文件分为三大类,分别是:
app.js
整个小程序项目的入口文件 ,通过调用 App() 函数 来启动整个小程序
页面的 .js 文件
  页面的入口文件 ,通过调用 Page() 函数 来创建并运行页面
普通的 .js 文件
普通的功能模块文件 ,用来封装 公共的函数或属性 供页面使用
### 微信小程序 WXML/WXSS/JavaScript 技术栈使用指南 #### 1. **WXML (WeiXin Markup Language)** WXML微信小程序使用的标记语言,用于描述页面结构。它类似于 HTML,但在语法上有一定差异。 - 组件化开发:通过 `<template>` 和 `is` 属性实现组件复用[^1]。 - 数据绑定:支持双大括号 `{{}}` 的数据绑定方式,可以动态更新视图内容[^2]。 - 条件渲染:提供 `wx:if` 和 `hidden` 属性来控制元素显示状态[^3]。 - 列表渲染:利用 `wx:for` 实现列表项循环展示,推荐设置唯一的 `key` 值提升性能[^4]。 ```xml <view wx:for="{{items}}" wx:key="id"> {{item.name}} </view> ``` --- #### 2. **WXSS (WeiXin Style Sheets)** WXSS微信小程序的样式语言,扩展自 CSS 并增加了一些特性。 - 尺寸单位:默认采用 rpx 单位,可根据屏幕宽度自动调整大小[^5]。 - 样式导入:可以通过 `@import` 导入外部样式文件[^6]。 - 样式作用域隔离:每个页面的 WXSS 默认独立生效,避免全局污染[^7]。 ```css /* example.wxss */ .container { display: flex; justify-content: center; } .item { margin: 20rpx; padding: 10rpx; background-color: #f8f8f8; } ``` --- #### 3. **JavaScript 开发逻辑** 在微信小程序中,JavaScript 负责处理业务逻辑并与前端交互。 - 页面生命周期函数:如 `onLoad`, `onShow`, `onReady` 等,可用于初始化和管理页面状态[^8]。 - 数据驱动视图:通过 `this.setData()` 方法更新界面数据并触发重新渲染[^9]。 - API 调用:提供了丰富的内置接口(如网络请求、存储操作),需遵循异步回调模式[^10]。 ```javascript Page({ data: { message: 'Hello, Mini Program!' }, onLoad(options) { console.log('Page Loaded', options); }, updateMessage() { this.setData({ message: 'Updated Message!' }); } }); ``` --- #### 4. **最佳实践** - **模块划分清晰**:将功能拆分为多个子组件,便于维护和重用[^11]。 - **优化加载速度**:减少不必要的图片资源体积;对于复杂动画可考虑分帧绘制[^12]。 - **错误监控机制**:引入日志记录工具捕获异常情况,及时修复潜在问题[^13]。 - **用户体验优先**:设计简洁直观的操作流程,确保适配不同设备分辨率[^14]。 ---
评论 72
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

热爱编程的小白白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值