smith-log
v0.3.4
Published
## import ```javascript import {log} from 'smith-log' Vue.use(log, { // 'prod' or other env: context.app.$config.env, // app router router: context.app.router, // core send method, must return a promise send: (data, headers) => { return ap
Downloads
18
Readme
Usage
import
import {log} from 'smith-log'
Vue.use(log, {
// 'prod' or other
env: context.app.$config.env,
// app router
router: context.app.router,
// core send method, must return a promise
send: (data, headers) => {
return api.post(data, {
headers
})
},
// optional: console or online, default 'dev'
output: context.app.$config.env === 'dev' ? 'console' : 'online',
// optional: store just for user state, can be null if user doesn't login
store: context.app.store,
// optional: get config from server, return a promise, defualt set to server.js
config: () => Promise().then(res),
})
PV and PD
$route.meta.log
rely on @nuxt-route-meta module
pageId is required in meta.log. e.g.
meta: {
log: {
pageId: 'p_re_loginweb',
commonExtra: {},
extra: {}
}
}
then
import {logMixin} from 'smith-log';
mixins: [logMixin],
Sometimes a page is not compatible with a route component. A component can contain unlimited page. We can use directive instead:
<div v-log.pageview:p_re_profile_detail = 'extra'></div>
Dynamic pageId
PageId can be dynamically in reused component.
meta example:
meta: {
log: {
pageId: 'dynamicPageId',
dynamic: true
}
}
use this.dynamicPageId as pageId
directive example:
<div v-log.pageview = '{page_id: () => dynamicPageId, extra: () => value}'></div>
pd
auto
MC
<div v-log.click:e_re_info_flow_profile_card = 'extra'></div>
dynamic modular_id
<div v-log.click = '{modular_id: () => modularId, extra: () => extra}'></div>
MV
<div v-log.view:e_re_info_flow_profile_card = 'extra'></div>
dynamic modular_id
<div v-log.view = '{modular_id: () => modularId, extra: () => extra}'></div>
Dynamic value
All event's (PV,MV,MC) value can be dynamically set with a function. Value will be calculated when event is triggered.
e.g.
<div v-log.pageview:p_re_profile_detail = '() => extra'></div>
dynamic e.g.
<div v-log.pageview = '{page_id: () => pageId,extra: () => extra}'></div>
other
manual log
import {triggerPV, triggerPD, send} from 'smith-log'
triggerPV: pv
triggerPD: pd
send: function (log_type, modular_id, exter) {}
encode
import {encode} from 'smith-log'