How to call a vue.js function on page load
我有一个帮助过滤数据的功能。当用户更改选择时,我正在使用
中没有这样的指令
这是我的功能:
1 2 3 4 5 6 7 8 9 10 | getUnits: function () { var input = {block: this.block, floor: this.floor, unit_type: this.unit_type, status: this.status}; this.$http.post('/admin/units', input).then(function (response) { console.log(response.data); this.units = response.data; }, function (response) { console.log(response) }); } |
在
1 2 3 4 | {!! Form::select('floor', $floors,null, ['class'=>'form-control', 'placeholder'=>'All Floors', 'v-model'=>'floor', 'v-on:change'=>'getUnits()' ]) !!} {!! Form::select('unit_type', $unit_types,null, ['class'=>'form-control', 'placeholder'=>'All Unit Types', 'v-model'=>'unit_type', 'v-on:change'=>'getUnits()' ]) !!} |
当我选择一个特定的项目时,这很好用。然后,如果我单击所有让我们说
如何在
我的代码:http://jsfiddle.net/q83bnLrx
您可以在 Vue 组件的 beforeMount 部分调用此函数:如下所示:
1 2 3 4 5 6 7 8 | .... methods:{ getUnits: function() {...} }, beforeMount(){ this.getUnits() }, ...... |
工作小提琴:https://jsfiddle.net/q83bnLrx/1/
Vue 提供了不同的生命周期钩子:
我列出了几个:
您可以在此处查看完整列表。
您可以选择最适合您的钩子,并像上面提供的示例代码一样钩子来调用您的函数。
你需要做这样的事情(如果你想在页面加载时调用该方法):
1 2 3 4 5 6 7 8 9 | new Vue({ // ... methods:{ getUnits: function() {...} }, created: function(){ this.getUnits() } }); |
你也可以使用
来做到这一点
https://vuejs.org/v2/guide/migration.html#ready-replaced
1 2 3 4 5 6 7 8 | .... methods:{ getUnits: function() {...} }, mounted: function(){ this.$nextTick(this.getUnits) } .... |
请注意,当
要真正模拟 DOM
内部使用 vm.$nextTick
1 2 3 4 5 | mounted: function () { this.$nextTick(function () { // Will be executed when the DOM is ready }) } |
如果你得到数组中的数据,你可以像下面这样。它对我有用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <template> {{ id }} </template> import axios from"axios"; export default { name: 'HelloWorld', data () { return { id:"", } }, mounted() { axios({ method:"GET","url":"https://localhost:42/api/getdata" }).then(result => { console.log(result.data[0].LoginId); this.id = result.data[0].LoginId; }, error => { console.error(error); }); }, |