编写通用性代码

一套代码,两套执行环境

在vue的生命周期函数中,只有beforeCreate和created会在ssr过程中执行,其他的生命周期函数只会在客户端执行。所以应该避免在这两个生命周期函数中产生全局副作用的代码,比如定时器。同时,由于前端代码会在后端中执行,而Node.js和浏览器JavaScript有区别,导致在前端视图中的部分JavaScript属性或方法在执行时会报错。比如在使用一些插件的时候会提示window或document是undefined,在这种情况下,可以用vue-no-ssr让相关组件不走ssr

数据预获取方式

使用asyncData 静态方法

<template>
    <div>
        {{ userInfo.username }}
    </div>
</template>
<script>
import { mapGetters } from 'vuex'
export default {
    name: 'Home',
    // 组件实例化前无法访问this,所以需要将store和路由信息作为参数传递进去
    asyncData({ store, router }) {
        return store.dispatch('user/getInfo')
    },
    computed: {
        ...mapGetters(['userInfo'])
    }
}
</script>

client端获取数据方式

<script>
import API from '@/api'
export default {
......
  methods: {
    getData(){
        try{
            const data = await API(this.$store.$http).getJobSummary()
            ......
        } catch(err=>{
                ......
        })
    }
  }
......    
}
</script>
Copyright ©大数据项目组 2019 all right reserved,powered by Gitbook本文档更新于: 2019-11-25 02:41

results matching ""

    No results matching ""