谷粒学院-19-NUNX前台环境

一、服务端渲染技术NUXT

1、什么是服务端渲染

服务端渲染又称SSR (Server Side Render)是在服务端完成页面的内容,而不是在客户端通过AJAX获取数 据。

服务器端渲染(SSR)的优势主要在于:更好的 SEO,由于搜索引擎爬虫抓取工具可以直接查看完全渲染的 页面。

如果你的应用程序初始展示 loading 菊花图,然后通过 Ajax 获取内容,抓取工具并不会等待异步完成后 再进行页面内容的抓取。也就是说,如果 SEO 对你的站点至关重要,而你的页面又是异步获取内容,则 你可能需要服务器端渲染(SSR)解决此问题。

如果你的应用程序初始展示 loading 菊花图,然后通过 Ajax 获取内容,抓取工具并不会等待异步完成后 再进行页面内容的抓取。也就是说,如果 SEO 对你的站点至关重要,而你的页面又是异步获取内容,则 你可能需要服务器端渲染(SSR)解决此问题。

2、什么是NUXT

Nuxt.js 是一个基于 Vue.js 的轻量级应用框架,可用来创建服务端渲染 (SSR) 应用,也可充当静态站点引擎 生成静态站点应用,具有优雅的代码结构分层和热加载等特性。

官网网站:

https://zh.nuxtjs.org/

二、NUXT环境搭建

下载压缩包并解压:https://github.com/nuxt-community/starter-template/archive/master.zip

用webstom打开项目

使用命令行下载NUXT需要的依赖插件

cnpm install 或npm install

启动项目:

npm run dev

1、NUXT项目结构

2、搭建基础页面

举例跑马灯

下载插件

npm install vue-awesome-swiper
此处需要指定版本
npm i vue-awesome-swiper@3.1.3 --save

配置插件(对应plugins文件夹)

在plugins文件夹下创建nuxt-swiper-plugin.js文件

import Vue from 'vue'
import VueAwesomeSwiper from 'vue-awesome-swiper/dist/ssr'
Vue.use(VueAwesomeSwiper)

全局配置文件

module.exports = {
 // some nuxt config...
  plugins: [
    { src: '~/plugins/nuxt-swiper-plugin.js', ssr: false }
  ],
  css: [
    'swiper/dist/css/swiper.css'
  ]
}

就此跑马灯配置完毕

三、NUXT路由

1、固定路由

不需要带参的固定地址

使用router-link构建路由,地址是/course

<router-link to="/course" tag="li" active-class="current">
  <a>课程</a>
</router-link>

跳转到page下的course目录下的index.vue

<template>
    <div>
      课程列表
    </div>
</template>

结果

2、动态路由

如果我们需要根据id查询一条记录,就需要使用动态路由。NUXT的动态路由是以下划线开头的vue文 件,参数名为下划线后边的文件名

在pages下的course目录下创建_id.vue

<template>
    <div>
     讲师详情
    </div>
</template>

四、封装axios

我们可以参考guli-admin将axios操作封装起来

下载axios ,使用命令 npm install axios

创建utils文件夹,utils下创建request.js

import axios from 'axios'
// 创建axios实例
const service = axios.create({
  baseURL: 'http://localhost:9001', // api的base_url
  timeout: 20000 // 请求超时时间
});
export default service

后面就可以类似于后台前端的api调用方式创建api

比如

import request from '@/utils/request';

export default {
  getBannerList() {
    return request({
      url: `/cmsservice/front/banner/list`,
      method: 'get'
    })
  }
}
posted @ 2021-08-16 10:26  Coder-Wang  阅读(335)  评论(0编辑  收藏  举报