compose 桌面开发中如何使用KOIN依赖注入

添加依赖

[versions]
koin = "3.6.0-Beta4"
koinComposeMultiplatform = "1.2.0-Beta4"




[libraries]
koin-core = { module = "io.insert-koin:koin-core", version.ref = "koin" }
koin-compose = { module = "io.insert-koin:koin-compose", version.ref = "koinComposeMultiplatform" }
koin-compose-viewmodel = { module = "io.insert-koin:koin-compose-viewmodel", version.ref = "koinComposeMultiplatform" }
 commonMain.dependencies {
            api(libs.koin.core)
            implementation(libs.koin.compose)
            implementation(libs.koin.compose.viewmodel)

        }

在main.kt中初始化koin

fun main() = run {
    AppConfig.windowMinWidth = 800.dp
    AppConfig.windowMinHeight = 1280.dp
    // AppConfig.fullScreen = true
    initKoin()
   
......
    }
}




import org.koin.core.context.startKoin
import org.koin.dsl.KoinAppDeclaration

fun initKoin(config: KoinAppDeclaration? = null) {
    startKoin {
        config?.invoke(this)
        modules( platformModule)
    }
}

其中module定义

import org.koin.core.module.dsl.singleOf
import org.koin.dsl.bind
import org.koin.dsl.module
import repo.DefaultDeskTopRepository
import repo.DeskTopRepository
import ui.login.LoginByPwdOrCardViewModel

val platformModule = module {
    singleOf(::DefaultDeskTopRepository).bind<DeskTopRepository>()
//    viewModelOf(::LoginByPwdOrCardViewModel)
    factory { LoginByPwdOrCardViewModel(get()) }
}

在composable中使用viewmodel

viewModelTemp: LoginByPwdOrCardViewModel = getKoin().get()

写法和Android略有不同

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值