datag
Version:
A Vue plugin collects some data from user environment and actions
203 lines (131 loc) • 4.51 kB
Markdown
# datag
datag is a Vue plugin can gather enviroment and user movement information.
## install
Using npm
```shell
$ npm install datag
```
Using yarn
```shell
$ yarn add datag
```
Using jsDelivr CDN:
```
<script src="https://cdn.jsdelivr.net/npm/datag@0.0.1/index.min.js"></script>
```
Using unpkg CDN:
```
<script src="https://unpkg.com/datag@0.0.1/index.js"></script>
```
## Using
First: install datag
Second: import datag and register on vue like this.
```javascript
import datag from 'datag'
Vue.use(datag)
```
Third: register the command `v-listen` to the item you`d like to monitor.
```vue
<Item
v-listen:[parantType] = "{direction: [direction], subType: [subType]}"
>
</Item>
```
## Description
datag registered a `Vue` command named `v-listen`,and it is use on the item you`d like to monitor.
and you are suppose to pass the parentType to the arg of the command(`v-listen:[parentType]`),and pass the subType to the value of the command(`v-listen:[parentType] = "{direction: [direction], subType: [subType]}"`)。
`direction`:
- description: datag can monitor visible items and this property controls whether direction datag divide important part.
- default: 'bottom'
- value:
- 'bottom': from bottom
- 'top': from top
`subType`:
- description: the sub type of your data.
- required
## API
### environment information
enviData(Type)
```javascript
//script in xxx.vue
//baseData
let baseData = this.$datag.enviData()
/*baseData type can be ignored
*let baseData = this.$datag.enviData(0)
*/
//advancedData
this.$datag.enviData(1).then((advancedData) => {
//use advancedData here
...
})
//mixData
this.$datag.enviData(2).then((mixData) => {
//use mixData here
...
})
```
#### introduce
you can get the information even you don`t register the v-command.And there are three kinds of information.
1. base data: It includes some base information:
1. `engine`: the engien of the browser.
2. `browser`: the browser type.
3. `device`: the device brand and type(special for Mobile platform).
4. `os`: Operation system .
5. `lang`: the language.
6. `onLine`: the online status.
7. `date`: the timeStamp of gather time.
2. advanced data: It include some advanced feature of the client device.includes:
1. `bluetooth`: the ability for bluetooth.
2. `position`: the position(permission are required).
3. `isTouch`: the ability of touch screen.
4. `screenHeight`: the screen hight.
5. `screenWidth`: the screen width.
6. `colorDepth`: the color depth of the screen.
7. `screenType`: the screen type.
3. mix data: includes all the information mentioned above.
**note:**
1. type 1 will return a `object` includes its content.
2. type 2 and type 3 will return a `promise` includes the information.
### click data
clickData()
```javascript
//script in xxx.vue
let clickData = this.$datag.clickData()
```
#### introduce
datag is going to gather the click data of the items been monitored by putting the `v-listen` command on.
It return a object contains two part:
1. byTime: gather click data by every time the user clicks.And it contains following data:
1. `eventType`: click type such as "mousedown"
2. `isTrusted`: whether it is created by JavaScript.
3. `mainType`: mainType passed by command.
4. `srcNode`: the trigger HTML node.
5. `subType`: subType passed by command.
6. `timeStamp`: click timeStamp
7. `x`: left screen margin of click position
8. `y`: top screen margin of click position
2. byType: an object contains parent type and it`s sub type click times such as :
```javascript
china : {
south: 2,
north: 3,
west: 4
}
```
### scroll data
the main function of `datag`,`datag` divide the visible screen into two part :`inportant`, ` unimportance`.And `datag` will calculate the time it remains in the `important` part. And `datag` will processing the data on an appropriate time. And the data processed will stored in the `scrollData`.
you can get the data by this:
```javascript
//script in xxx.vue
let scrollData = this.$datag.scrollData
```
Besides,you can get the row data of scroll data by this:
```javascript
//script in xxx.vue
let scrollData = this.$datag.watchData()
```
It will return the row data of scroll includes:
1. `timeGap`: the time gap user watched this time.
2. `vatalType`: the sub types remain in the visible part.
## License
[MIT](https://github.com/axios/axios/blob/master/LICENSE)