Skip to content

Commit 5d8e6d1

Browse files
committed
refactor: shadowRoot
1 parent a7ca820 commit 5d8e6d1

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

src/index.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,11 @@ export default function wrap (Vue, Component) {
4242

4343
constructor () {
4444
super()
45+
this.attachShadow({ mode: 'open' })
4546
const wrapper = this._wrapper = new Vue({
4647
name: 'shadow-root',
4748
customElement: this,
49+
shadowRoot: this.shadowRoot,
4850
data () {
4951
return {
5052
props: getInitialProps(camelizedPropsList),
@@ -81,8 +83,6 @@ export default function wrap (Vue, Component) {
8183
connectedCallback () {
8284
const wrapper = this._wrapper
8385
if (!wrapper._isMounted) {
84-
this._shadowRoot = this.attachShadow({ mode: 'open' })
85-
wrapper.$options.shadowRoot = this._shadowRoot
8686
// initialize children
8787
wrapper.slotChildren = Object.freeze(toVNodes(
8888
wrapper.$createElement,
@@ -93,7 +93,7 @@ export default function wrap (Vue, Component) {
9393
camelizedPropsList.forEach(key => {
9494
wrapper.props[key] = this.vueComponent[key]
9595
})
96-
this._shadowRoot.appendChild(wrapper.$el)
96+
this.shadowRoot.appendChild(wrapper.$el)
9797
} else {
9898
callHooks(this.vueComponent, 'activated')
9999
}

test/test.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ test('attributes', async () => {
8888
test('events', async () => {
8989
const { page } = await launchPage(`events`)
9090
await page.evaluate(() => {
91-
el._shadowRoot.querySelector('button').click()
91+
el.shadowRoot.querySelector('button').click()
9292
})
9393
expect(await page.evaluate(() => window.emitted)).toBe(true)
9494
expect(await page.evaluate(() => window.emittedDetail)).toEqual([123])
@@ -98,7 +98,7 @@ test('slots', async () => {
9898
const { page } = await launchPage(`slots`)
9999

100100
const content = await page.evaluate(() => {
101-
return el._shadowRoot.querySelector('div').innerHTML
101+
return el.shadowRoot.querySelector('div').innerHTML
102102
})
103103
expect(content).toMatch(`<div>default</div><div>foo</div>`)
104104

@@ -107,7 +107,7 @@ test('slots', async () => {
107107
el.innerHTML = `<div>default2</div><div slot="foo">foo2</div>`
108108
})
109109
const newContent = await page.evaluate(() => {
110-
return el._shadowRoot.querySelector('div').innerHTML
110+
return el.shadowRoot.querySelector('div').innerHTML
111111
})
112112
expect(newContent).toMatch(`<div>default2</div><div>foo2</div>`)
113113
})

0 commit comments

Comments
 (0)