miniprogram-computed
是一個用于微信小程序的擴展庫,它提供了計算屬性(computed
)和監聽器(watch
)的功能,類似于 Vue.js 中的計算屬性和監聽器。以下是使用 miniprogram-computed
的詳細步驟:
安裝與構建
- 在項目根目錄下運行以下命令安裝
miniprogram-computed
:npm install --save miniprogram-computed
- 在微信開發者工具中構建 npm:
- 打開開發者工具。
- 點擊“工具”菜單。
- 選擇“構建 npm”。
使用計算屬性 computed
- 引入
computedBehavior
:
在需要使用computed
的頁面或組件的 JS 文件中,引入computedBehavior
:import { behavior as computedBehavior } from 'miniprogram-computed';
- 在頁面或組件中使用
computed
:- 在頁面或組件的配置對象中添加
behaviors
屬性,并將computedBehavior
添加進去。 - 定義
computed
屬性,其值是一個對象,對象的鍵是計算屬性的名稱,值是一個函數,該函數的參數是組件的data
對象。
Page({behaviors: [computedBehavior],data: {a: 1,b: 2,},computed: {sum(data) {// 注意:computed 函數中不能訪問 this,只有 data 對象可供訪問return data.a + data.b;},},methods: {onTap() {this.setData({a: this.data.b,b: this.data.a + this.data.b,});},}, });
- 在頁面或組件的配置對象中添加
- 在 WXML 文件中使用計算屬性:
<view>A = {{a}}</view>
B = {{b}}
SUM = {{sum}}
點擊更新
### 使用監聽器 `watch`
1. **定義 `watch`**:在頁面或組件的配置對象中定義 `watch` 屬性,其值是一個對象,對象的鍵是要監聽的數據字段,值是一個函數,該函數會在數據變化時被調用。```javascriptwatch: {a(newVal, oldVal) {console.log(`a changed from ${oldVal} to ${newVal}`);},b(newVal, oldVal) {console.log(`b changed from ${oldVal} to ${newVal}`);},},
- 監聽多個字段:
可以同時監聽多個字段,字段名用逗號分隔。watch: {'a,b': function(a, b) {console.log(`a=${a}, b=${b}`);}, },
注意事項
computed
函數中不能訪問this
,但可以通過參數訪問data
對象。- 計算屬性具有緩存特性,只有當依賴的數據發生變化時,才會重新計算。
- 如果需要在組件中使用,需要將
Component
替換為ComponentWithComputed
。
通過以上步驟,你可以在微信小程序中使用 miniprogram-computed
來實現計算屬性和監聽器功能,從而更高效地管理數據和響應數據變化。