账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    dvajs Model几个疑问?️
    37
    0

    1、一个页面配置几个Model是根据什么?
    2、dva文档说effects里不直接修改state,请问是在dispatch里传键名,effects接收后填到state吗?
    3、我以为的dva的概念大概是,UI事件、网络回调,都会触发action,最后驱动组件更新,但现在是model通过props传入组件
    4、dvajs到底提供了什么?

    看我下面的代码,这样有违effects里不直接修改state吗?

    dispatch({
        type: 'argumentSettingModels/query',
        payload: {
            targetObject: 'paramGroup',
            pl: {
                entityId: '600040',
                beginIndex: 0,
                pageCount: 10,
            }
        }
    })
    
    *query({ payload }, { select, call, put }) {
        const { targetObject, pl } = payload
        const state = yield select(({ argumentSettingModels }) => argumentSettingModels)
        const data = yield call(query, pl)
        const map = new Map()
        if (data && data.code === '1000') {
            map.set(targetObject, {
                list: data.list,
                total: data.total,
                beginIndex: pl.beginIndex,
                pageCount: pl.pageCount,
                orderString: pl.orderString,
            })
            yield put({
                type: 'ajxSuccess',
                payload: Object.assign(state, strMapToObj(map))
            })
        }
        else {
            message.error(data.messages, 1)
        }
    },
    1
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 森林里的小仙女 普通会员 1楼

      Dva.js 是一个用于创建复杂组件的 JavaScript 库,提供了许多用于处理组件数据、渲染和生命周期的方法。关于 Dva.js 中的几个常见疑问,我将为您提供一些解答。

      1. Model 与 Props: Dva.js 中的 Model 是一个用于存储数据的抽象,它代表了一种数据结构,包括一些属性(字段)和一些方法(方法)。Props 是 Model 的父接口,它们从父组件传递给子组件。Dva.js 使用组件的 Props 来处理数据和传递数据给子组件。Model 和 Props 是组件之间的桥梁。

      2. Props 和 State: Props 是 Model 的父接口,它们从父组件传递给子组件。State 是组件内部的状态,它代表了组件的数据和状态。Dva.js 使用 props 和 state 来处理数据和组件的状态。props 是模型与组件交互的关键,而 state 是模型与组件交互的核心。

      3. 状态管理: Dva.js 提供了一种全局状态管理方式,它允许你在全局范围内管理组件的状态。你可以使用 store(state store)来存储和管理状态。store 是一个管理全局状态的组件,它可以通过 actions(action)来更新状态。

      4. render 方法: Dva.js 的 render 方法负责渲染组件的 UI。render 方法接受一些参数,如 props(组件参数)和 context(父组件上下文)。在 render 方法中,你可以根据 props 和 context 来渲染组件。

      5. 依赖注入: Dva.js 提供了依赖注入(DI)功能,可以帮助你更好地管理组件的依赖关系。DI 可以让你将依赖关系抽象为一个函数,然后在组件中通过这个函数来获取依赖。这样,你就可以更好地管理和组织组件的依赖关系。

      6. 组件库: Dva.js 是一个组件库,它提供了许多用于创建组件的函数和方法。通过使用 Dva.js,你可以快速地创建出复杂、可维护的组件。

    更多回答
    网站公告
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部