<!DOCTYPE html>
<div id="v-model-example" class="demo">
<todo-list>
</todo-list>
</div>
<script src="https://unpkg.com/vue@next"></script>
<script>
const app = Vue.createApp({});
app.component('todo-list', {
data() {
return {
todos: ['Feed a cat', 'Buy milk']
}
},
provide: {
user: 'John Doe'
},
template: `
<div>{{ todos.length }}</div>
`
})
app.component('todo-list-statistics', {
inject: ['user'],
created() {
console.log(`Injected property: ${this.user}`)
}
}).mount('#v-model-example')
</script>
<!DOCTYPE html>
<div id="v-model-example" class="demo">
<todo-list>
</todo-list>
<todo-list-statistics></todo-list-statistics>
</div>
<script src="https://unpkg.com/vue@next"></script>
<script>
const app = Vue.createApp({});
app.component('todo-list', {
data() {
return {
todos: ['Feed a cat', 'Buy milk']
}
},
provide() {
return {
todoLength: this.todos.length
}
},
template: `
<div>{{ todos.length }}</div>
`
})
app.component('todo-list-statistics', {
inject: ['user'],
created() {
console.log(`Injected property: ${this.user}`)
}
}).mount('#v-model-example')
</script>
Uncaught TypeError: Cannot read properties of undefined (reading 'value')
<!DOCTYPE html>
<div id="v-model-example" class="demo">
<todo-list>
</todo-list>
<todo-list-statistics></todo-list-statistics>
</div>
<script src="https://unpkg.com/vue@next"></script>
<script>
const app = Vue.createApp({});
app.component('todo-list', {
data() {
return {
todos: ['Feed a cat', 'Buy milk']
}
},
provide() {
return {
todoLength: Vue.computed(() => this.todos.length)
}
},
template: `
<div>{{ todos.length }}</div>
`
})
app.component('todo-list-statistics', {
inject: ['todoLength'],
created() {
console.log(`Injected property: ${this.todoLength.value}`)
}
}).mount('#v-model-example')
</script>