Хорошо. Кажется, у Вью проблемы с поиском данных.Есть несколько причин, которые могут это вызвать.
- В зависимости от того, как вы создаете объект или компонент vue, синтаксис для данных будет другим.Пример:
Использование экспорта по умолчанию
export default {
data() {
return {...}
},
methods:{...},
}
Или
export default {
data: ()=>{
return {...}
},
methods:{...},
}
Использование объекта vue
<div id="app">
{{ message }}
</div>
<script>
var app = new Vue({
el: '#app',
data: {
message: 'Hello Vue!'
}
})
</script>
Использование компонента vue
Vue.component('button-counter', {
data: function () {
return {
count: 0
}
},
template: '<button v-on:click="count++">You clicked me {{ count }} times.</button>'
})
Еще одна ошибка, которая может быть причиной, заключается в том, что по любой причине в Vue вы можете вызывать this.data
только в самой внешней области видимости метода,Если вы хотите получить доступ к нему в другой области метода, вам нужно использовать var example = this;
, а затем во внутренней области вы можете использовать example.data
.Например, вот пример проекта, над которым я работаю:
export default {
data() {
return {
loading: false,
partner: '',
conenctions: [],
users: [],
orgs: []
}
},
methods:{
loadConn(){
var vm = this;
axios.get('http://localhost:8000/ext/list_conn/')
.then(function(response){
vm.conenctions = response.data;
console.log(vm.conenctions);
})
},
},
}
Приведенный выше код будет работать, но следующий код не будет
export default {
data() {
return {
loading: false,
partner: '',
conenctions: [],
users: [],
orgs: []
}
},
methods:{
loadConn(){
axios.get('http://localhost:8000/ext/list_conn/')
.then(function(response){
this.conenctions = response.data;
console.log(this.conenctions);
})
},
},
}
Надеюсь, это поможет с вашей ошибкой
edit: Также убедитесь, что данные находятся в самой внешней области видимости вашего vue-объекта или компонента, как в моих примерах.Если data () {...} находится внутри методов: {...} или смонтированы {...}, это также может вызвать ошибку, которую вы описываете