mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-26 00:31:20 -08:00
docs(core): [SITE-04] document component lifecycle and selector contracts
This commit is contained in:
1 parent
5910c3f179
commit
bb2fec8dd1
110 files changed
+4745
-2334
No files matched your search
@@ -7,11 +7,12 @@
|
||||
| `disable` | `Boolean` | Whether to disable the component |
|
||||
| `name` | `String` | Unique component name for CSS class |
|
||||
| `index` | `Number` | Component index for display priority |
|
||||
| `html` | `String`, `Element` | DOM element of the component |
|
||||
| `html` | `String`, `Element`, `Number` | DOM element of the component |
|
||||
| `style` | `Object` | Component style object |
|
||||
| `click` | `Function` | Component click event |
|
||||
| `mounted` | `Function` | Triggered after component mount |
|
||||
| `tooltip` | `String` | Tooltip text for the component |
|
||||
| `beforeUnmount` | `Function` | Hook before explicit remove/update |
|
||||
| `tooltip` | `String`, `Number` | Tooltip text for the component |
|
||||
|
||||
## Creation
|
||||
|
||||
@@ -125,4 +126,23 @@ art.on('ready', () => {
|
||||
})
|
||||
}, 3000);
|
||||
});
|
||||
```
|
||||
```
|
||||
|
||||
## Menu management and lifecycle {#contextmenu-contract}
|
||||
|
||||
See [shared component behavior](./layers#component-contract) for options, callbacks, return values, name conflicts and update/cleanup rules. The parent is template.$contextmenu; the manager name is contextmenu, with art-contextmenu and art-contextmenu-NAME item classes. show/toggle control the whole menu, not individual availability. Clicking a custom entry does not automatically close it; set art.contextmenu.show = false in your callback when needed.
|
||||
|
||||
Desktop initialization installs built-in/configured entries and handles the context-menu event, keyboard, outside clicks and player blur. Mobile does not automatically run that initialization. Direct add can still register entries, but does not install the complete desktop context-menu flow. Use add/update/remove rather than repeating initialization to refresh entries.
|
||||
|
||||
## TypeScript menu example
|
||||
|
||||
```ts
|
||||
import Artplayer from 'artplayer/runtime';
|
||||
|
||||
const art = new Artplayer({ container: '#player', url: '/video.mp4' });
|
||||
const menu: HTMLDivElement | undefined = art.contextmenu.add({
|
||||
name: 'custom-menu', html: 'Close menu',
|
||||
click() { this.contextmenu.show = false; },
|
||||
});
|
||||
if (menu) art.contextmenu.remove('custom-menu');
|
||||
```
|
||||
Reference in new issue
Block a user