微信小程序中使用计算属性

微信小程序中使用计算属性

在小程序开发中,它的基本原理和vue是大同小异,但是有的时候就是因为这小异造成很多不必要的麻烦.
在小程序开发中,改变数据更新视图用的是Page.prototype.setData方法,遇到一些复杂数据逻辑判断时,代码会写的很繁琐,这个时候就让我想起了vue中的计算属性了,当然小程序自定义组件扩展 behavior,计算属性 computed 和监听器 watch 的实现。在 data 或者 properties 改变时,会重新计算 computed 字段并触发 watch 监听器。

安装具体的使用步骤如下:

1:初始化npm, 命令行进入到小程序项目根目录,执行初始化npm

npm init

2:完成后,在项目根目录中创建目录node_modules文件夹

3:cd到node_modules目录下,执行安装computed

npm install --save miniprogram-computed

4:在小程序开发者工具里构建npm

5:在使用的js文件中引入(官方文档如下)

//引入computed
const computedBehavior = require('miniprogram-computed')

Component({
     
    
  behaviors: [computedBehavior],//引入
  data: {
     
    a: 1,
    b: 1,
  },
  computed: {
     
    sum(data) {
     
      // 注意: computed 函数中不能访问 this ,只有 data 对象可供访问
      // 这个函数的返回值会被设置到 this.data.sum 字段中
      return data.a + data.b
    },
  },
  methods: {
     
    onTap() {
     
      this.setData({
     
        a: this.data.b,
        b: this.data.a + this.data.b,
      })
    }
  }
})

6:我自己又简单的测试了一下


<view class="container">
  <view>
    <view catchtap="change" >{
    {a}} 
    <view>{
    {b}}view>
    <view>{
    {c}}view>
  view>
  <view>
      {
    {sum}}
  view>
view>
//index.js
//获取应用实例
const app = getApp()
const computedBehavior = require('miniprogram-computed')
Component({
     
  behaviors: [computedBehavior],
  data: {
     
   a:1,
   b:2,
   c:3
  },
    methods:{
     
      change(){
     
        this.setData({
     
            a:this.data.a+1
        })
          //点击一次sum的值随着a的改变而改变
          console.log(this.data.sum)// 7 --> 8 -->9 
      }
        
    },
  computed: {
     
    sum(data) {
     
      return data.a+data.b+data.c
    }
  },
})

你可能感兴趣的:(微信小程序,html,javascript)