zoukankan      html  css  js  c++  java
  • vue-ssr之nuxt.js 服务端的异步数据交互

    web项目开发中,数据请求是必不可少的;我们通常在vue中使用的数据请求,都是基于浏览器进行的异步请求;那么在nuxt.js框架中,如何实现数据请求呢?现在用一个例子来演示怎么使用axios,实现服务端的异步数据请求。

    PS. axios在nuxt.js框架是作为模块在初始化项目的时候就让选择安装的。但是亲测发现似乎没有安装,还是需要运行npm install @nuxtjs/axios --save

    在nuxt.config.js中进行如下配置

    ...
    /*
      ** Nuxt.js modules
      */
      modules: [
        '@nuxtjs/axios'
      ],
      axios: {
        prefix: '/api/',
        proxy: true // Can be also an object with default options
      },
    
      proxy: {
        '/api/': {
          target: 'https://www.domian.com/',
          pathRewrite: { '^/api/': '' }
        }
      },
    ...
    

    在index.vue页面中使用

    <template>
    <div>
      <img :src="item.content" alt="" v-for="(item, index) in bannerData.banners" key="index">
    </div>
    </template>
    
    <script>
    export default {
      data(){
        return {
          bannerData: {}
        }
      },
      # 这里发起请求,这个请求在页面变异前进行的,所有不能使用this
      async asyncData(content) {
        const res = await content.$axios.$post("/getFDBanner", { location: "88" });
        if (res.resultCode === "1") {
          console.log(res.resultdata);
          return { bannerData: res.resultdata };
        }
      }
    }
    </script>
    
    <style>
    
    </style>
    
    

    asyncData 方法

    asyncData方法会在组件(限于页面组件)每次加载之前被调用。它可以在服务端或路由更新之前被调用。 在这个方法被调用的时候,第一个参数被设定为当前页面的上下文对象,你可以利用 asyncData方法来获取数据,Nuxt.js 会将

    asyncData 返回的数据融合组件 data 方法返回的数据一并返回给当前组件。

    注意:由于asyncData方法是在组件 初始化 前被调用的,所以在方法内是没有办法通过 this 来引用组件的实例对象

    本文参考

  • 相关阅读:
    .NET基础篇——利用泛型与反射更新实体(ADO.NET Entity Framework)(转)
    反射奥秘
    ubuntu 安装chmsee
    ubuntu安装sublime,新立得
    Ubuntu 升级VisualBox后无法启动 Kernel driver not installed
    ubuntu安装stardict并导入词典
    PHP运行模式
    Ubuntu ibus输入法图标消失的解决办法
    MySQL 获得当前日期时间(以及时间的转换)
    mysql索引之or条件
  • 原文地址:https://www.cnblogs.com/huyifei/p/10341812.html
Copyright © 2011-2022 走看看