-
Notifications
You must be signed in to change notification settings - Fork 1
Updating to v3
Ryan Domingue edited this page Jan 6, 2024
·
3 revisions
This document outlines two approaches to updating an existing project to use version 3.0.0:
Additionally, the plugins have been removed. Consider using aria-components instead.
- Update
Componentimports to use the/v2export.
- import { Component } from 'js-component-framework';
+ import { Component } from 'js-component-framework/v2';- Import
initComponents, also from the/v2export, and use it in place ofComponentManager.
- import { ComponentManager } from 'js-component-framework';
+ import { initComponents } from 'js-component-framework/v2';
- const manager = new ComponentManager('namespace');
document.addEventListener('DOMContentLoaded', () => {
- manager.initComponents([
+ initComponents([
headerConfig
]);
});- Change the
classconfig property tocomponent.
// index.js
import Header from './Header';
const headerConfig = {
name: 'siteHeader',
- class: Header,
+ component: Header,
querySelector: {
title: '.site-title',
},
querySelectorAll: {
menuItems: '.menu-item',
},
options: {
offset: 100,
},
};
export default headerConfig;- Classical components no longer extend
Component.
// Header.js
- import { Component } from 'js-component-framework';
- export default class Header extends Component {
+ export default class Header {
constructor(config) {
- super(config);- Set any necessary instance properties based on the object passed to the constructor.
export default class Header {
- constructor(config) {
+ constructor({ element, children, options }) {
+ this.element = element;
+ this.children = children;
+ this.options = options;- Remove
ComponentManagerimports and instead usecomponentProviderto load the component in the file from which the config was previously exported.
// index.js
+ import { componentProvider } from 'js-component-framework';
import Header from './Header';
const headerConfig = {
name: 'siteHeader',
component: Header,
querySelector: {
title: '.site-title',
},
querySelectorAll: {
menuItems: '.menu-item',
},
options: {
offset: 100,
},
};
- export default headerConfig;
+ componentProvider(headerConfig);// site.js
- import { ComponentManager } from 'js-component-framework';
- import headerConfig from './components/Header';
+ import './components/Header';
- const manager = new ComponentManager('namespace');
- document.addEventListener('DOMContentLoaded', () => {
- manager.initComponents([
- headerConfig
- ]);
- });