我正在寻找一种从实例中访问组件方法的方法
<button id="live" class="ui primary button" v-on:click.prevent="live">
Live Text
</button>
它直接在我的内部,#app
并且要使其live
从我的组件内部启动方法,因此Live.vue
我在2.x之前的版本中找到了关于broadcast
和的大量文档dispatch
,但是尝试使用它一小时后,$emit
我不确定我是什么再做..
<template>
<div v-if="loaded">
Live
</div>
</template>
<script>
export default {
data: function () {
return {
loading: false,
loaded: false,
}
},
methods: {
load: function (event) {
console.log('loading..')
this.loaded = !this.loaded
}
},
mounted: function () {
// this.$on('liveClick', function (msg) {
// console.log(msg)
// })
},
name: 'Live',
props: {
'id': Number,
'key': String
}
}
</script>
和init.js
(这是一个基于laravel的结构)
window.App = new Vue({
el: '#app',
methods: {
live: function (event) {
this.$emit('liveClick', 'msg')
}
}
})
我已经对Vuex进行了“解决”,但是我并不需要为了使这项工作变得复杂而使学习曲线复杂化。
jsfiddle:https ://jsfiddle.net/c4s44qgy/1/
您可以在此处找到固定的小提琴:https://jsfiddle.net/gr9c6h64/
基本上,当您要将数据从主Vue实例传递到组件时,您必须像在小提琴中所做的那样在该组件中使用道具:props: { loaded: String }
然后使用:loaded='isLoaded'
我不认为这正是您要执行的操作,但看起来这正是您遇到的问题。希望能帮助到你!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句