vue+ssr+axios

git地址:https://github.com/317482454/vue-axios-ssr

懒懒的撸了一个vue-ssr demo

Vue在ssr模式需要注意第三方插件不一定支持,因为先在渲染node端,node是没有window对象,避免使用 如果要使用先声明--》判断如果是客户端执行

 let Btn  
 if (process.env.VUE_ENV === 'client') {  
   Btn = require('')  
 }  
 export default {  
   components: {  
     Btn  
   } 

请求接口操作 现在server.js里面创建路由

app.get('/api/getMusic', (req, res) => {
  axios.get('http://www.sojson.com/api/qqmusic/8446666/json')
    .then(function (response) {
      res.json({list: response.data})
    })
    .catch(function (error) {
      console.log(error)
    })
})

vuex-->store

 state: {
      musicList:[]
    },
    actions: {
      getMusic({ commit }) {
        return axios.get('http://localhost:8080/api/getMusic').then((res) => {
          commit('setMusic', res.data.list)
        })
      }
    },
    mutations: {
      setMusic (state, list) {
        state.musicList = list
      }
    }

vue组件使用先申明asyncData

asyncData ({ store }) {
    return store.dispatch('getMusic')
  }

直接使用$store.state.musicList.data.playlist就行了

v-for里面使用方法:v-for="person in ppl('aib')" ,需要判断是否有值 ppl (tag) { return this.$store.state.musicList.data.playlist==''?[]:this.$store.state.musicList.data.playlist.filter(p => p.groups[tag]) }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值