[英]Using Ember.js, how do I gather all the mixins composed with a class at initiation time?
[英]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.