簡體   English   中英

Ember Octane Route 類是否支持使用 mixins?

[英]Does Ember Octane Route class support using mixins?

我正在升級到 Ember Octane,我知道 mixin 已被棄用。 我將繼續使用它們,直到我弄清楚如何更換它們為止。 與此同時,我想將我的路線切換到使用新的類語法,而不是Route.extend 新的路由類語法是否支持路由混合? 如果是,如何?

這與Ember Octane Upgrade How to pass values from component to controller 有關

余燼前辛烷值:

import Route from '@ember/routing/route';
import AbcAuthenticatedRouteMixin from '../../mixins/abc-authenticated-route-mixin';

export default Route.extend(AbcAuthenticatedRouteMixin, {

    model() {

        return {
            oldPassword: '',
            newPassword: '',
            confirmPassword: ''
        };
    },
})

余燼后辛烷值:

import Route from '@ember/routing/route';
import AbcAuthenticatedRouteMixin from '../../mixins/abc-authenticated-route-mixin';

export default class ChangePasswordRoute extends Route(AbcAuthenticatedRouteMixin, {

    model() {

        return {
            oldPassword: '',
            newPassword: '',
            confirmPassword: ''
        };
    },
}) // I get an error here that says: '{' expected

本機類語法沒有直接與 Ember 混合系統等效。 如果您想在轉換為 Octane 時繼續使用 mixins,可以通過將經典類擴展語法與本機類語法混合來實現:

嘗試

import Route from '@ember/routing/route';
import AbcAuthenticatedRouteMixin from '../../mixins/abc-authenticated-route-mixin';

export default class ChangePasswordRoute extends Route.extend(AbcAuthenticatedRouteMixin) {

    model() {

        return {
            oldPassword: '',
            newPassword: '',
            confirmPassword: ''
        };
    }
}

此外,一些新的框架類,例如 Glimmer 組件,根本不支持 Ember mixins。 未來,mixin 將被從框架中移除,不會被直接替換。 對於使用 mixins 的應用程序,推薦的路徑是將 mixin 重構為其他模式,包括:

純原生類,通過類繼承共享功能。 可以在多個類中導入和使用的實用函數。 可以注入多個類的服務,在它們之間共享功能和狀態。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM