提交 3331cf02 编写于 作者: DCloud-WZF's avatar DCloud-WZF 💬

feat: globalData 补充数据类型

上级 da9ae769
...@@ -4,9 +4,21 @@ ...@@ -4,9 +4,21 @@
let firstBackTime = 0 let firstBackTime = 0
export default { export default {
globalData: { globalData: {
str: 'global data str', str: 'default globalData str',
num: 123, num: 0,
bool: true, bool: false,
obj: {
str: 'default globalData obj str',
num: 0,
bool: false,
},
null: null as string | null,
arr: [] as number[],
set: new Set<string>(),
map: new Map<string, any>(),
func: (): string => {
return 'globalData func'
}
}, },
onLaunch: function () { onLaunch: function () {
// 自动化测试 // 自动化测试
......
...@@ -9,15 +9,24 @@ describe('getApp', () => { ...@@ -9,15 +9,24 @@ describe('getApp', () => {
it('globalData', async () => { it('globalData', async () => {
await page.callMethod('getGlobalData') await page.callMethod('getGlobalData')
let data = await page.data() let data = await page.data()
expect(data.globalDataStr).toBe('global data str') expect(data.originGlobalData.str).toBe('default globalData str')
expect(data.globalDataNum).toBe(123) expect(data.originGlobalData.num).toBe(0)
expect(data.globalDataBool).toBe(true) expect(data.originGlobalData.bool).toBe(false)
expect(data.originGlobalData.obj).toEqual({bool: false, num: 0, str: 'default globalData obj str'})
expect(data.originGlobalData.arr).toEqual([])
expect(data.originGlobalData.set).toEqual([])
expect(data.originGlobalData.map).toEqual({})
expect(data.originGlobalDataFuncRes).toBe('globalData func')
await page.callMethod('setGlobalData') await page.callMethod('setGlobalData')
await page.callMethod('getGlobalData')
data = await page.data() data = await page.data()
expect(data.globalDataStr).toBe('new global data str') expect(data.newGlobalData.str).toBe('new globalData str')
expect(data.globalDataNum).toBe(456) expect(data.newGlobalData.num).toBe(100)
expect(data.globalDataBool).toBe(false) expect(data.newGlobalData.bool).toBe(true)
expect(data.newGlobalData.obj).toEqual({bool: true, num: 200, str: 'new globalData obj str'})
expect(data.newGlobalData.arr).toEqual([1,2,3])
expect(data.newGlobalData.set).toEqual(['a', 'b', 'c'])
expect(data.newGlobalData.map).toEqual({'a': 1, 'b': 2, 'c': 3})
expect(data.newGlobalDataFuncRes).toBe('new globalData func')
}) })
it('method', async () => { it('method', async () => {
const oldLifeCycleNum = await page.data('lifeCycleNum') const oldLifeCycleNum = await page.data('lifeCycleNum')
......
<template> <template>
<!-- #ifdef APP -->
<scroll-view style="flex:1;padding-bottom: 20px;">
<!-- #endif -->
<view> <view>
<page-head title="getApp"></page-head> <page-head title="getApp"></page-head>
<view class="uni-padding-wrap"> <view class="uni-padding-wrap">
<button @click="getGlobalData">get globalData</button> <button @click="getGlobalData">get globalData</button>
<template v-if="originGlobalData.str.length">
<text class="uni-common-mt bold">初始的 globalData:</text>
<text class="uni-common-mt">globalData string: {{ originGlobalData.str }}</text>
<text class="uni-common-mt">globalData number: {{ originGlobalData.num }}</text>
<text class="uni-common-mt">globalData boolean: {{ originGlobalData.bool }}</text>
<text class="uni-common-mt">globalData object: {{ originGlobalData.obj }}</text>
<text class="uni-common-mt">globalData null: {{ originGlobalData.null }}</text>
<text class="uni-common-mt">globalData array: {{ originGlobalData.arr }}</text>
<text class="uni-common-mt">globalData Set: {{ originGlobalData.set }}</text>
<text class="uni-common-mt">globalData Map: {{ originGlobalData.map }}</text>
<text class="uni-common-mt">globalData func 返回值: {{ originGlobalDataFuncRes }}</text>
</template>
<button @click="setGlobalData" class="uni-common-mt">set globalData</button> <button @click="setGlobalData" class="uni-common-mt">set globalData</button>
<template v-if="globalDataStr"> <template v-if="newGlobalData.bool">
<text class="uni-common-mt">globalData str: {{ globalDataStr }}</text> <text class="uni-common-mt bold">更新后的 globalData:</text>
<text class="uni-common-mt">globalData num: {{ globalDataNum }}</text> <text class="uni-common-mt">globalData string: {{ newGlobalData.str }}</text>
<text class="uni-common-mt">globalData boolean: {{ globalDataBool }}</text> <text class="uni-common-mt">globalData number: {{ newGlobalData.num }}</text>
<text class="uni-common-mt">globalData boolean: {{ newGlobalData.bool }}</text>
<text class="uni-common-mt">globalData object: {{ newGlobalData.obj }}</text>
<text class="uni-common-mt">globalData null: {{ newGlobalData.null }}</text>
<text class="uni-common-mt">globalData array: {{ newGlobalData.arr }}</text>
<text class="uni-common-mt">globalData Set: {{ newGlobalData.set }}</text>
<text class="uni-common-mt">globalData Map: {{ newGlobalData.map }}</text>
<text class="uni-common-mt">globalData func 返回值: {{ newGlobalDataFuncRes }}</text>
</template> </template>
<view class="uni-common-mt hr"></view>
<text class="uni-common-mt">点击按钮调用 App.uvue methods</text> <text class="uni-common-mt">点击按钮调用 App.uvue methods</text>
<text class="margin-top:6px;">increasetLifeCycleNum 方法</text> <text class="margin-top:6px;">increasetLifeCycleNum 方法</text>
<button class="uni-common-mt" @click="_increasetLifeCycleNum"> <button class="uni-common-mt" @click="_increasetLifeCycleNum">
...@@ -17,17 +40,60 @@ ...@@ -17,17 +40,60 @@
<text class="uni-common-mt">lifeCycleNum: {{ lifeCycleNum }}</text> <text class="uni-common-mt">lifeCycleNum: {{ lifeCycleNum }}</text>
</view> </view>
</view> </view>
<!-- #ifdef APP -->
</scroll-view>
<!-- #endif -->
</template> </template>
<script lang="uts"> <script lang="uts">
type MyGlobalData = {
str : string,
num : number,
bool : boolean,
obj : UTSJSONObject,
null : string | null,
arr : number[],
set : Set<string>,
map : Map<string, any>,
func : () => string
}
import { state, setLifeCycleNum } from '@/store/index.uts' import { state, setLifeCycleNum } from '@/store/index.uts'
export default { export default {
data() { data() {
return { return {
globalDataStr: '', originGlobalData: {
globalDataNum: 0, str: '',
globalDataBool: false, num: 0,
bool: false,
obj: {
str: '',
num: 0,
bool: false
} as UTSJSONObject,
null: null,
arr: [] as number[],
set: new Set<string>(),
map: new Map<string, any>(),
func: () : string => ''
} as MyGlobalData,
originGlobalDataFuncRes: '',
newGlobalData: {
str: '',
num: 0,
bool: false,
obj: {
str: '',
num: 0,
bool: false
} as UTSJSONObject,
null: null,
arr: [] as number[],
set: new Set<string>(),
map: new Map<string, any>(),
func: () : string => ''
} as MyGlobalData,
newGlobalDataFuncRes: '',
lifeCycleNum: 0, lifeCycleNum: 0,
} }
}, },
...@@ -37,15 +103,50 @@ ...@@ -37,15 +103,50 @@
methods: { methods: {
getGlobalData() { getGlobalData() {
const app = getApp() const app = getApp()
this.globalDataStr = app.globalData.str this.originGlobalData.str = app.globalData.str
this.globalDataNum = app.globalData.num this.originGlobalData.num = app.globalData.num
this.globalDataBool = app.globalData.bool this.originGlobalData.bool = app.globalData.bool
this.originGlobalData.obj = app.globalData.obj
this.originGlobalData.null = app.globalData.null
this.originGlobalData.arr = app.globalData.arr
this.originGlobalData.set = app.globalData.set
this.originGlobalData.map = app.globalData.map
this.originGlobalData.func = app.globalData.func
this.originGlobalDataFuncRes = this.originGlobalData.func()
}, },
setGlobalData() { setGlobalData() {
const app = getApp() const app = getApp()
app.globalData.str = 'new global data str'
app.globalData.num = 456 app.globalData.str = 'new globalData str'
app.globalData.bool = false app.globalData.num = 100
app.globalData.bool = true
app.globalData.obj = {
str: 'new globalData obj str',
num: 200,
bool: true
}
app.globalData.null = 'not null'
app.globalData.arr = [1, 2, 3]
app.globalData.set = new Set(['a', 'b', 'c'])
app.globalData.map = new Map([
['a', 1],
['b', 2],
['c', 3]
])
app.globalData.func = () : string => {
return 'new globalData func'
}
this.newGlobalData.str = app.globalData.str
this.newGlobalData.num = app.globalData.num
this.newGlobalData.bool = app.globalData.bool
this.newGlobalData.obj = app.globalData.obj
this.newGlobalData.null = app.globalData.null
this.newGlobalData.arr = app.globalData.arr
this.newGlobalData.set = app.globalData.set
this.newGlobalData.map = app.globalData.map
this.newGlobalData.func = app.globalData.func
this.newGlobalDataFuncRes = this.newGlobalData.func()
}, },
_increasetLifeCycleNum: function () { _increasetLifeCycleNum: function () {
const app = getApp() const app = getApp()
...@@ -59,3 +160,10 @@ ...@@ -59,3 +160,10 @@
}, },
} }
</script> </script>
<style>
.bold {
font-weight: bold;
}
.hr{border-bottom: 1px solid #ccc;}
</style>
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册