- vue.2.5.2 页面片断:
export default {
name: 'Index',
components: {
Menu,
GlobalSearch,
Topic,
List
},
data () {
return {
searchInfo: '',
formInline: {},
systemNm: '',
orderByColumn: 'visitorVolume',
isAsc: 'descending',
menuData: [
{ id: '001', systemNm: '全部', count: '0', checked: true }
],
topicData: []
mounted () {
this.getDataMapSystem()
this.getDataMapSubjArea()
},
methods: {
getDataMapSystem () {
let query = {}
getSystem(query)
.then((res) => {
const checkedData = this.addChecked(res.data)
this.menuData[0].count = this.addCount(res.data)
const spliceData = this.menuData.concat(checkedData)
this.menuData = spliceData
})
.catch((res) => {
console.log('失败:==>', res)
})
},
addCount (data) {
let sum = 0
for (let i = 0; i < data.length; i++) {
sum = sum + data[i].count
}
return sum
},
getDataMapSubjArea () {
let query = {}
getSubjArea(query)
.then((res) => {
const checkedData = this.addChecked(res.data)
const spliceData = this.topicData.concat(checkedData)
this.topicData = spliceData
})
.catch((res) => {
console.log('失败:==>', res)
})
}
}
- vue3.0 改造片断:
<script>
import { defineComponent, ref, onMounted, reactive, toRefs } from "vue";
import { useRouter, useRoute } from "vue-router";
import { getSubjArea, getSystem, getObjList } from "@/request/api.js";
export default defineComponent({
name: "Index",
// props: {
// list: {
// type: Array as PropType<ColumnProps[]>,
// required: true
// }
// },
setup(props) {
onMounted(() => {
console.log("为什么写在后面不行?");
});
const getDataMapSystem = async () => {
let query = {}
getSystem(query)
.then((res) => {
const checkedData = this.addChecked(res.data)
this.menuData[0].count = this.addCount(res.data)
const spliceData = this.menuData.concat(checkedData)
this.menuData = spliceData
})
.catch((res) => {
console.log('失败:==>', res)
})
}
const data = reactive({
searchInfo: '',
formInline: {},
systemNm: '',
orderByColumn: 'visitorVolume',
isAsc: 'descending',
menuData: [
{ id: '001', systemNm: '全部', count: '0', checked: true }
],
topicData: []
});
const refData = toRefs(data);
return {
...refData,
};
},
});
</script>
问题:this
问题如何解决?多个函数如何调用,有些蒙啊
给个示意,建议仔细看看文档,尤其是 Composition API 部分。
另外建议使用 TypeScript 来写,会有一些类型提示和约束,多试错,有助于建立 Vue3 的类型体系思维。