Taro 3 1 0 原始碼分析

2022-09-21 22:18:14 字數 1913 閱讀 3200

import taro,  from '@tarojs/taro'
我們用的最頻繁的包就是@tarojs/taro

// taro/index.js

const = require('@tarojs/runtime')

const taro = require('@tarojs/api').default

if (typeof currentreconciler.initnativeapi === 'function')

module.exports = taro

module.exports.default = module.exports

// taro-runtime/reconciler.ts

export const currentreconciler: reconciler= object.assign(,

getpathindex (indexofnode) ]`

},geteventcenter (events)

}, defaultreconciler)

// shared/utils.ts

export const defaultreconciler = {}

export function mergereconciler (hostconfig)

import from '@tarojs/shared'

import from './runtime-utils'

mergereconciler(hostconfig)

mergeinternalcomponents(components)

taro 根據不同的編譯環境變數,引入了對應的編譯包。

編譯包引入的是乙個initnativeapi初始化函式,用於初始化對應平台的原生 api。

export function initnativeapi (taro) )

taro.cloud = wx.cloud

}

processapis收集了當前執行平台的_nopromiseapis_needpromiseapis,將_needpromiseapis的api promise 化,都繫結到taro物件上。

processapis也做了taro.request 請求改造,將taro.request 繫結 new taro.link

/**

* 掛載常用 api

* @param taro taro 物件

*/function equipcommonapis (taro, global, apis: record= {})

const link = new taro.link(tarointerceptor)

taro.request = link.request.bind(link)

taro.addinterceptor = link.addinterceptor.bind(link)

taro.cleaninterceptors = link.cleaninterceptors.bind(link)

taro.miniglobal = global

}// taro-api/interceptor/index.js

export default class link

request (requestparams) )

} addinterceptor (interceptor)

cleaninterceptors ()

}

到這裡,@tarojs/taro 就已經解析完成了

co原始碼分析 thunk版本3 1 0

co的thunk版本,就是將所有 函式,generator,generator function,object,array,promise,都轉換為thunk函式,在thunk函式的 中,切換外部包裝的generator的狀態,即呼叫next方法,來依次執行所有的非同步任務。其中的,object和a...

spring原始碼分析 spring原始碼分析

1.spring 執行原理 spring 啟動時讀取應用程式提供的 bean 配置資訊,並在 spring 容器中生成乙份相應的 bean 配置登錄檔,然後根據這張登錄檔例項化 bean,裝配好 bean 之間的依賴關係,為上 層應用提供準備就緒的執行環境。二 spring 原始碼分析 1.1spr...

思科VPP原始碼分析(dpo機制原始碼分析)

vpp的dpo機制跟路由緊密結合在一起。路由表查詢 ip4 lookup 的最後結果是乙個load balance t結構。該結構可以看做是乙個hash表,裡面包含了很多dpo,指向為下一步處理動作。每個dpo都是新增路由時的乙個path的結果。dpo標準型別有 dpo drop,dpo ip nu...