国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

微信小程序TS項(xiàng)目使用mobx(頁(yè)面直接使用store和自定義組件中使用store)

這篇具有很好參考價(jià)值的文章主要介紹了微信小程序TS項(xiàng)目使用mobx(頁(yè)面直接使用store和自定義組件中使用store)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一、下載mobx相關(guān)包

npm i -S mobx-miniprogram mobx-miniprogram-bindings

?注意:下載完成后,需要?jiǎng)h除 miniprogram_npm 目錄后,重新構(gòu)建 npm。

二、創(chuàng)建是 MobX的store實(shí)例

注意:ts編寫的話,方法中使用this,需要在參數(shù)中定義this: any,否則會(huì)提示錯(cuò)誤

import { observable, action} from 'mobx-miniprogram'

export const store = observable({
  numA: 1,
  numB: 2,

  get sum(){
    return this.numA + this.numB;
  },
  updateNumA: action(function(this: any, step:number){
    this.numA += step;
  }),
  updateNumB: action(function(this: any, step:number){
    this.numB += step;
  })

});

三、頁(yè)面使用store

引入onLoad()方法中引入createStoreBindings將store上的方法和屬性綁定到頁(yè)面中

在unOnLoad()方法中銷毀destroyStoreBindings()

// 引入store
import { createStoreBindings } from 'mobx-miniprogram-bindings'
import { store } from "../../store/store"

Page({
  data: {
  },
  handleNum(this:any, e:any){
    this.updateNumA(e.target.dataset.step-0);
  },
  onLoad(this:any) {
    this.storeBinding = createStoreBindings(this,{
      store,
      // fields:['numA','numB','sum'], //數(shù)組方式
      fields:{
        numA: 'numA',
        numB: ()=> store.numB,
        sum: (store:any) => store.sum
      }, //對(duì)象形式
      actions:['updateNumA']
    });
  },

  onUnload(this:any){
    this.storeBinding.destroyStoreBindings();
  }
})

頁(yè)面中使用:

<view>
  {{numA}} + {{numB}} = {{sum}}
</view>
<van-button type="primary" bindtap="handleNum" data-step="1">update numA</van-button>
<van-button type="info" bindtap="handleNum" data-step="-1">update numA</van-button>

四、自定義組件中使用store

在自定義組件ts文件中引入ComponentWithStore,注意如果是TS必須使用ComponentWithStore,如果是js項(xiàng)目使用storeBindingsBehavior

// components/store-test/store-test.ts
// import { storeBindingsBehavior} from 'mobx-miniprogram-bindings'
// ts中使用mobx和js中不一樣,js中使用storeBindingsBehavior,ts中使用ComponentWithStore
import { ComponentWithStore } from 'mobx-miniprogram-bindings'
import { store } from '../../store/store'
ComponentWithStore({
  storeBindings: {
    store: store,
    fields: ["numA", "numB", "sum"],
    actions: {
      updateNumB: "updateNumB",
    },
  },

  /**
   * 組件的方法列表
   */
  methods: {
    handleNumB(this:any, e:any){
      console.log(this);
      this.updateNumB(e.target.dataset.step-0);
    },
  }
})

自定義組件:

<van-button type="primary" bindtap="handleNumB" data-step="1">update numB</van-button>
<van-button type="info" bindtap="handleNumB" data-step="-1">update numB</van-button>

頁(yè)面組引入自定義組件:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-561714.html

<view>
  {{numA}} + {{numB}} = {{sum}}
</view>
<!-- 自定義組件中使用store -->
<store-test></store-test>

到了這里,關(guān)于微信小程序TS項(xiàng)目使用mobx(頁(yè)面直接使用store和自定義組件中使用store)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • vue3+ts+vite 搭建uniapp項(xiàng)目(微信小程序)

    vue3+ts+vite 搭建uniapp項(xiàng)目(微信小程序)

    模板下載: uniapp 官網(wǎng)通過(guò)vue-cli 命令行創(chuàng)建uniapp,參考uni-app官網(wǎng),使用? npx degit dcloudio/uni-preset-vue#vite-ts my-vue3-project 下載模板; 安裝css預(yù)處理 sass: 項(xiàng)目終端輸入: yarn add node-sass@^4.0.0 sass-loader@^10.0.1 sass (模板沒有默認(rèn)安裝sass, 如果不安裝直接使用會(huì)報(bào)錯(cuò)) ?安裝uni-ui組件

    2024年02月09日
    瀏覽(51)
  • 微信小程序:全局狀態(tài)管理mobx-miniprogram(類似store)

    微信小程序:全局狀態(tài)管理mobx-miniprogram(類似store)

    ? ? ? ? 需求是,每個(gè)播放視頻的地方都有控制是否靜音的按鈕,點(diǎn)某一個(gè)靜音則全局靜音。 ? ? ? ? 問題 :由于我的每個(gè)小卡片都是一個(gè)組件,本質(zhì)是每個(gè)頁(yè)面引幾次同一個(gè)組件,剛開始用的setData,但是這樣每個(gè)卡片中的數(shù)據(jù)都是經(jīng)過(guò)深拷貝而獨(dú)立的,所以點(diǎn)擊某個(gè)按鈕

    2024年02月11日
    瀏覽(28)
  • 微信小程序使用TDesign(TS版本)

    微信小程序使用TDesign(TS版本)

    1.使用微信小程序的Terminal執(zhí)行: 2.修改project.config.json ?3.修改app.json,移除\\\"style\\\":?\\\"v2\\\" 4.編譯npm:微信開發(fā)者工具的Tools-構(gòu)建npm 5.在頁(yè)面下的頁(yè)面json中導(dǎo)入要使用的組件,在wxml中使用

    2024年02月11日
    瀏覽(30)
  • 微信小程序動(dòng)態(tài)設(shè)置標(biāo)題 IOS、安卓通用(直接使用)

    微信小程序動(dòng)態(tài)設(shè)置標(biāo)題 IOS、安卓通用(直接使用)

    1.默認(rèn)標(biāo)題--在json文件中寫 ?2.動(dòng)態(tài)設(shè)置標(biāo)題?? ?2-1:固定寫: ? ? ? ?使用方法:直接把這段代碼放在onLoad里面 即表示--界面記載時(shí)候就執(zhí)行所設(shè)置的title ????????wx.setNavigationBarTitle({ ????????????title:?\\\"XXXX\\\" ????????}) ?2-2:動(dòng)態(tài)變更標(biāo)題 ? ? ? ?使用方法:

    2024年02月09日
    瀏覽(20)
  • 微信小程序之項(xiàng)目基本結(jié)構(gòu)、頁(yè)面的基礎(chǔ)及宿主環(huán)境

    微信小程序之項(xiàng)目基本結(jié)構(gòu)、頁(yè)面的基礎(chǔ)及宿主環(huán)境

    微信小程序的項(xiàng)目基本結(jié)構(gòu)、頁(yè)面的基礎(chǔ)及宿主環(huán)境 新建一個(gè)微信小程序項(xiàng)目,其項(xiàng)目基本結(jié)構(gòu)如下: pages用來(lái)存放所有小程序的頁(yè)面 utils用來(lái)存放工具性質(zhì)的模塊(例如:格式化時(shí)間的自定義模板) app.js小程序項(xiàng)目的全局配置文件 app.json小程序項(xiàng)目的全局配置文件 app.wx

    2024年02月03日
    瀏覽(92)
  • 微信小程序復(fù)雜對(duì)象的雙向綁定(附代碼可直接使用)

    最近在小程序的開發(fā)過(guò)程中,遇到一個(gè)需求,需要綁定一個(gè)list到自定義表單組件,組件根據(jù)列表渲染表單,表單的值需要和父組件雙向綁定。 但是這里卻出現(xiàn)了問題,本人先使用vue的方式將list直接做整體綁定。 結(jié)果在子組件內(nèi)部使用setData對(duì)list的屬性做出變更時(shí)直接報(bào)錯(cuò)棧

    2024年02月09日
    瀏覽(38)
  • 微信小程序--下拉選擇框組件封裝,可CV直接使用

    微信小程序--下拉選擇框組件封裝,可CV直接使用

    ? ? ? ? 接到的項(xiàng)目需求,查看ui設(shè)計(jì)圖后,由于微信小程序官方設(shè)計(jì)的下拉選擇框不符合需求,而且常用的第三方庫(kù)也沒有封裝類似的,所以選擇自己自定義組件。在此記錄一下,方便日后復(fù)用。 ? ? ? ? ui設(shè)計(jì)圖如下: ? ? ? ? ? ? ? ? ? 微信官方提供的選擇框 ? ? ? ? 對(duì)比發(fā)現(xiàn)

    2024年02月05日
    瀏覽(27)
  • 《微信小程序案例大全》大學(xué)生期末大作業(yè)可以直接使用!!

    《微信小程序案例大全》大學(xué)生期末大作業(yè)可以直接使用!!

    在大學(xué)生活中,期末大作業(yè)是鍛煉和展示自己所學(xué)知識(shí)的重要時(shí)刻。微信小程序作為一種快速、便捷的應(yīng)用開發(fā)方式,成為了大學(xué)生開發(fā)實(shí)踐的熱門選擇。本文將為大家推薦一系列可以直接使用的微信小程序案例,包括仿真社交、圖書管理、學(xué)習(xí)工具等多個(gè)領(lǐng)域。 下面是一系

    2024年02月04日
    瀏覽(93)
  • uniapp微信小程序使用axios(vue3+axios+ts版)

    uniapp微信小程序使用axios(vue3+axios+ts版)

    \\\"vue\\\": \\\"^3.2.45\\\", ?\\\"axios\\\": \\\"^1.4.0\\\", ?\\\"axios-miniprogram-adapter\\\": \\\"^0.3.5\\\", yarn add axios axios-miniprogram-adapter 在 utils 創(chuàng)建 utils/request.ts 文件 在 src 目錄下創(chuàng)建 src/api/config 文件夾 config文件夾中創(chuàng)建home.ts文件,首頁(yè)的接口都放在里面統(tǒng)一管理 ?和 config 文件夾同級(jí)創(chuàng)建home.ts文件,統(tǒng)一管理請(qǐng)求

    2024年02月16日
    瀏覽(57)
  • 微信小程序激活賬號(hào)時(shí),提示“此帳號(hào)已激活,請(qǐng)使用帳號(hào)密碼直接登錄”

    微信小程序激活賬號(hào)時(shí),提示“此帳號(hào)已激活,請(qǐng)使用帳號(hào)密碼直接登錄”

    最近準(zhǔn)備研究下微信小程序,先去申請(qǐng)個(gè)小程序賬號(hào)。于是乎,在通過(guò)郵件中的鏈接激活賬號(hào)時(shí),遇到了這個(gè)問題。 你沒看錯(cuò),就是字面的意思, 去登錄頁(yè),點(diǎn)擊使用賬號(hào)登錄 , 千萬(wàn)不要掃碼登錄 。 用之前注冊(cè)的郵箱和密碼登錄,登錄后就可以繼續(xù)完成信息登記了! 在未

    2024年02月11日
    瀏覽(74)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包