vue#VueElement TypeScript Examples
The following examples show how to use
vue#VueElement.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: wc.test.ts From vue-i18n-next with MIT License | 5 votes |
test('basic', async () => {
const i18n = createI18n<false>({
legacy: false,
locale: 'en',
messages: {
en: {
hello: 'hello web components!'
},
ja: {
hello: 'こんにちは Web コンポーネント!'
}
}
})
const Provider = defineCustomElement({
setup() {
provide(I18nInjectionKey, i18n)
return () => h('my-consumer')
}
})
customElements.define('my-provider', Provider)
const Consumer = defineCustomElement({
setup() {
const { t } = useI18n()
return () => h('div', t('hello'))
}
})
customElements.define('my-consumer', Consumer)
container.innerHTML = `<my-provider></my-provider>`
await nextTick()
const provider = container.childNodes[0] as VueElement
const consumer = provider.shadowRoot!.childNodes[0] as VueElement
expect(consumer.shadowRoot!.innerHTML).toBe(
`<div>hello web components!</div>`
)
i18n.global.locale.value = 'ja'
await nextTick()
expect(consumer.shadowRoot!.innerHTML).toBe(
`<div>こんにちは Web コンポーネント!</div>`
)
})
Example #2
Source File: wc.test.ts From vue-i18n-next with MIT License | 5 votes |
test('custom blocks', async () => {
const i18n = createI18n<false>({
legacy: false,
locale: 'en',
messages: {
en: {
hello: 'hello web components!'
},
ja: {
hello: 'こんにちは Web コンポーネント!'
}
}
})
const Provider = defineCustomElement({
setup() {
provide(I18nInjectionKey, i18n)
return () => h('my-child-block')
}
})
customElements.define('my-provider-block', Provider)
const Child = defineCustomElement({
setup() {
const instance = getCurrentInstance()
if (instance == null) {
throw new Error()
}
const options = instance.type as ComponentOptions
options.__i18n = [
{
locale: 'en',
resource: { foo: 'foo!' }
},
{
locale: 'ja',
resource: { foo: 'ふー!' }
}
]
const { t } = useI18n({
inheritLocale: true,
useScope: 'local'
})
return () => h('div', t('foo'))
}
})
customElements.define('my-child-block', Child)
container.innerHTML = `<my-provider-block></my-provider-block>`
await nextTick()
const provider = container.childNodes[0] as VueElement
const child = provider.shadowRoot!.childNodes[0] as VueElement
expect(child.shadowRoot!.innerHTML).toBe(`<div>foo!</div>`)
i18n.global.locale.value = 'ja'
await nextTick()
expect(child.shadowRoot!.innerHTML).toBe(`<div>ふー!</div>`)
})
Example #3
Source File: component.d.ts From jz-gantt with MIT License | 5 votes |
static install(vue: typeof VueElement): void;
Example #4
Source File: component.d.ts From jz-gantt with MIT License | 5 votes |
declare class JComponent extends VueElement {
static install(vue: typeof VueElement): void;
}