NUXT学习笔记【part1】nuxt的安装、自定义布局、路由跳转

news2024/11/19 9:38:00

一、NUXT概述

NUXT 是一个基于 Vue.js 的轻量级应用框架,可用来创建服务端渲染 (SSR) 应用,也可充当静态站点引擎生成静态站点应用,具有优雅的代码结构分层和热加载等特性。NUXT使用服务端渲染技术,可以获得更快的内容到达时间,无需等待所有的 JavaScript 都完成下载并执行,产生更好的用户体验。服务端渲染又称 SSR (Server Side Render) ,是指在服务端就完成页面的内容,而不是在客户端通过AJAX请求才获取数据。

在带有 loading加载菊花图 的应用程序中,通过 Ajax 发送请求并不方便抓取工具,而服务端渲染技术(SSR)就可以解决这个问题。


二、NUXT环境安装

第一步,下载环境初始化压缩包 https://github.com/nuxt-community/starter-template/archive/master.zip ,或直接通过官方网站 https://zh.nuxtjs.org/ 直接用命令进行引导。

第二步,在 package.json 中修改 name、description、author 属性。

{
  "name": "parker",
  "version": "1.0.0",
  "description": "parker_proj",
  "author": "swz",
  "private": true,
  "scripts": {
    "dev": "nuxt",
    "build": "nuxt build",
    "start": "nuxt start",
    "generate": "nuxt generate",
    "lint": "eslint --ext .js,.vue --ignore-path .gitignore .",
    "precommit": "npm run lint"
  },
...
}

在 nuxt.config.js 中修改 name、description 属性,否则将无法启动。

title: '{{ name }}'
...
content: '{{escape description }}'

若需要修改页面标题栏和 meta 数据,在如下处修改。

module.exports = {
  /*
  ** Headers of the page
  */
  head: {
    title: 'parker_site',
    meta: [
      { charset: 'utf-8' },
      { name: 'viewport', content: 'width=device-width, initial-scale=1' },
      { hid: 'description', name: 'description', content: 'parker_proj' }
    ],

第三步,执行 num install 导入依赖。npm install element-ui 来安装需要的相关插件。

第四步,在 plugins 文件夹下创建 myPlugin.js,引入 element-ui:

import Vue from 'vue'
import ElementUI from 'element-ui' //element-ui的全部组件
import 'element-ui/lib/theme-chalk/index.css'//element-ui的css
Vue.use(ElementUI) //使用elementUI

然后在 nuxt 中注册这个插件,具体步骤为在 nuxt.config.js 文件中添加 myPlugins.js 。

......
  /*
  ** Build configuration
  */
  build: {
    /*
    ** Run ESLint on save
    */
    extend (config, { isDev, isClient }) {
      if (isDev && isClient) {
        config.module.rules.push({
          enforce: 'pre',
          test: /\.(js|vue)$/,
          loader: 'eslint-loader',
          exclude: /(node_modules)/
        })
      }
    }
  },
  //在此注册自加插件
  plugins: [
        { src: '~/plugins/myPlugin.js', ssr: false }
      ]
}

第五步,执行 num run dev 访问项目,默认端口号为 3000 。


三、NUXT目录结构

目录说明
assets资源目录,用于组织未编译的静态资源如 LESS、SASS 或 JavaScript。
components组件目录 ,用于组织应用的 Vue.js 组件。Nuxt.js 不会扩展增强该目录下 Vue.js 组件,即这些组件不会像页面组件那样有 asyncData 方法的特性。
layouts布局目录 ,用于组织应用的布局组件。
pages页面目录 ,用于组织应用的路由及视图。Nuxt.js 框架读取该目录下所有的 .vue 文件并自动生成对应的路由配置。
plugins插件目录 ,用于组织那些需要在 根vue.js应用 实例化之前需要运行的 Javascript 插件。
nuxt.config.js配置文件, 用于组织Nuxt.js 应用的个性化配置,以便覆盖默认配置。

四、在NUXT中安装 axios

第一步,执行 npm install axios ,并创建 utils 文件夹,在该文件夹中创建 request.js,代码如下:

import axios from 'axios'
import { MessageBox, Message } from 'element-ui'
// 创建axios实例
const service = axios.create({
    baseURL: 'http://localhost',
    timeout: 15000 // 请求超时时间
})
// http request 拦截器
service.interceptors.request.use(
    config => {
    // token 先不处理,后续使用时在完善
    return config
},
  err => {
    return Promise.reject(err)
})
// http response 拦截器
service.interceptors.response.use(
    response => {
        if (response.data.code !== 200) {
            Message({
                message: response.data.message,
                type: 'error',
                duration: 5 * 1000
            })
            return Promise.reject(response.data)
        } else {
            return response.data
        }
    },
    error => {
        return Promise.reject(error.response)
})
export default service

注:若出现 require() of ES Module错误 ,原因为当前使用的 axios 版本太高,执行下述命令即可解决:

npm uninstall axios
npm install axios@0.19.2

五、NUXT自定义布局

在 layouts 目录下修改默认布局文件 default.vue ,将主内容区域的内容替换成 <nuxt/>,其中 <myheader/> 为公共头,<myfooter/> 为公共底,后续编写页面代码后,nuxt会为我们自动插入。

<template>
  <div class="app-container">
    <div id="main">
      <!-- 公共头 -->
      <myheader/>
      <div class="main-container">
        <el-scrollbar class='page-component__scroll'>
        <!-- 内容区域 -->
        <nuxt/>
        </el-scrollbar>
      </div>
        <!-- 公共底 -->
      <myfooter/>
    </div>
  </div>
</template>
<script>
import '~/assets/css/app.css'
import '~/assets/css/chunk.css'
import '~/assets/css/iconfont.css'
import '~/assets/css/main.css'
export default {
 }
</script>

插入公共头和公共底的具体步骤为:

第一步,创建 layouts/myheader.vue 文件,创建layouts/myfooter.vue文件,并编写代码。

第二步,在默认布局中引入头尾文件,先 import 导入,再在组件中添加。

<script>
import '~/assets/css/app.css'
import '~/assets/css/chunk.css'
import '~/assets/css/iconfont.css'
import '~/assets/css/main.css'

import myheader from './myheader'
import myfooter from './myfooter'
export default {
  components: {
      myheader,myfooter
    }
  }
</script>

六、NUXT路由跳转

1.固定路由

跳转路由固定,则采用固定路由。

在 pages 文件夹下创建一个文件夹,名字自取。并在文件夹下新建 index.vue 。

在这里插入图片描述

nuxt 中固定路由的 js 代码为:

window.location.href = '/hosp'

nuxt 会自动解析,并跳转到对应 pages 对应的 vue 文件中,默认为 index.vue 。


2.动态路由

跳转路径可能会有不一样的,采用动态路由。

在文件夹下创建 vue 文件,vue文件命名规范:_参数名称.vue ,注意是以下划线开头。

在这里插入图片描述

nuxt 中动态路由的 js 代码为:

window.location.href = '/hosp/' + hoscode

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/183671.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

markdown 写微信公众号,排版交给 mdnice

mdnice 墨滴软件&#xff08; https://product.mdnice.com/ &#xff09;&#xff0c;提供了以面向微信公众号内容排版为主的辅助工具 Markdown Nice[1]&#xff0c;效果堪称完美&#xff0c;极大的提升了发布微信公众号文章的效率。 使用其在线编辑器&#xff08; https://e…

L4 Latent Variable Model

Lecture4 Latent Variable Model 在之前我们所介绍的Autoregressive Model和Flow Model中&#xff0c;讨论的都是observable的数据&#xff0c;及一切数据都是可以观测到的。这一讲主要讨论的是latent variable model&#xff0c;即有些变量我们是无法直接观测的。 Latent Va…

2022尚硅谷SSM框架跟学(六)Spring MVC基础一

2022尚硅谷SSM框架跟学 六Spring MVC基础一三、SpringMVC1.SpringMVC简介1.1什么是MVC1.2什么是SpringMVC1.3SpringMVC的特点2入门案例2.1开发环境2.2创建maven工程(1)添加web模块(2)打包方式&#xff1a;war(3)引入依赖2.3配置web.xml(1)默认配置方式(2)扩展配置方式2.4创建请…

C++封装Halcon算法动态链接库Dll补充

前面写了一篇关于C封装DLL的文章&#xff0c;这里是做一个补充。 一、关于如何配置halcon和opencv库不再多说&#xff0c;前面文章介绍的很详细。下面介绍封装新增的东西。 1.1 首先创建类function1&#xff0c;并编写function.h和function1.cpp代码。 function1.h代码 #pra…

处理任务失败附实验(RH294)

首先&#xff0c;一个任务执行失败是肯定会遇见的事情而这时候&#xff0c;就需要一个备用的计划忽略任务失败默认情况下 任务失败的时候play会终止但是&#xff0c;我们可以通过忽略失败的任务来覆盖此行文使用关键字 ignore_errors举个栗子- name: Latest version of notapkg…

《流浪地球 2》 Deepfake 小试牛刀,45+ 吴京「被」年轻,变身 21 岁小鲜肉

内容一览&#xff1a;在春节档科幻电影「流浪地球 2」中&#xff0c;主演吴京、刘德华、沙溢等人饰演的角色&#xff0c;跨越 14 年之久&#xff0c;视效团队正是借助 Deepfake de-aging 技术&#xff0c;呈现出了演员不同年龄段的容貌。 关键词&#xff1a;De-aging Deepfa…

回收租赁商城系统功能拆解13讲-分销会员

回收租赁系统适用于物品回收、物品租赁、二手买卖交易等三大场景。 可以快速帮助企业搭建类似闲鱼回收/爱回收/爱租机/人人租等回收租赁商城。 回收租赁系统支持智能评估回收价格&#xff0c;后台调整最终回收价&#xff0c;用户同意回收后系统即刻放款&#xff0c;用户微信零…

springboot应用项目的打包和部署

jar包方式打包部署 springboot项目在为进行打包处理时就已经可以进行运行调试&#xff0c;是因为springboot项目内嵌了Tomcat服务器. .1添加Maven打包插件。在对Spring Boot项目进行打包(包括ar包和War包)前&#xff0c;需要在项目pom.xml文件中加入Maven打包插件&#xff0c…

倾角传感器的六大应用场合

倾角传感器又名水平传感器、水平仪、倾角仪&#xff0c;是角度传感器的一种&#xff0c;是运用惯性原理的一种加速度传感器&#xff0c;可以通过检测使用环境中的倾斜角度判断设备的倾斜状态&#xff0c;并在监测物出现角度偏差时&#xff0c;倾角传感器能够将异常数据传达给管…

【自学Docker 】Docker export命令

Docker export命令 概述 docker export教程 docker export 命令可以用于将 Docker容器 里的文件系统作为一个 tar 归档文件导出到标准输出。docker export 命令后面的 CONTAINER 可以是容器Id&#xff0c;或者是容器名。 docker save 命令用于将 Docker 镜像保存成 tar 包&a…

5nm三苯甲基/P3HT-PY/CdSe油溶性碳量子点CdSe/ZnS-PrPC的制备方法

5nm三苯甲基/P3HT-PY/CdSe油溶性碳量子点CdSe/ZnS-PrPC的制备方法今天小编分享制备三苯甲基功能化油溶性碳量子点的制备过程&#xff0c;一起看看吧&#xff1a;三苯甲基功能化油溶性碳量子点的制备过程&#xff1a;将50 mg Amino-CQDs放置在100 mL圆底烧瓶中,加入 50 mL二氯甲…

PyQt6-QLabel学习笔记

QLabel支持文本或图片显示&#xff0c;是任何GUI设计中最常用的控件之一。一、QLabel基本概述QLabel标签用于显示&#xff0c;可以以多种方式进行外观配置&#xff0c;没有提供用户交互功能&#xff0c;但是可以用于为另一个小部件指定焦点助记符或快捷键。显示内容类型类型说明…

HoloLens 2 应用开发流程笔记

本文链接&#xff1a;微信推文阅读效果更佳 目录安装工具应用开发举例配置 Unity创建新的 Unity 项目切换生成平台导入和配置资源导入 MRTK Unity 基础包配置 Unity 项目为 XR SDK 配置项目设置创建场景并配置 MRTK交互例子添加并调整第一个立方体向立方体添加脚本添加第二个立…

20篇高质量程序人生文章分享,做开发不仅仅只有代码

我一直觉得&#xff0c;我们做开发&#xff0c;不应该只有代码&#xff0c;合上公司的电脑脱离了公司的产品需求就脱离了程序&#xff0c;而应该结合软件的程序思维去更多的思考我们所处的生活和空间&#xff0c;从而指导自己面对更多的未曾见过的人与事&#xff0c;这可能就是…

Java基础之异常处理

一、小试牛刀 num1 / num2 当除数为零时&#xff0c;程序就会抛出异常&#xff0c;程序就会崩溃而导致退出。 我们可以通过异常处理机制来解决该问题 如果我们认为一段代码可能发生异常&#xff0c;可以使用try-catch-finally异常处理机制来解决。从而保证程序的健壮性。 将可能…

前端工程化-多维度检测重复代码

更多文章可关注我的个人博客&#xff1a;https://seven777777.github.io/myblog/ 1. 检测项目重复代码 1.1 检测方案&#xff1a;jscpd 方法一&#xff1a; 全局安装jscpd依赖npm i -g jscpd项目根路径执行&#xff1a;jscpd -p "src/**/*.js" -k 15 -l 5 方法二…

【黑马SpringCloud(3)】Docker

Docker初识DockerDocker与虚拟机的区别Docker架构DockerHubDocker镜像操作Docker容器操作数据卷自定义镜像镜像结构Dockerfile构建Java项目基于java:8-alpine镜像&#xff0c;构建java项目集群部署微服务Docker-Compose镜像仓库搭建私有镜像仓库Docker安装&#xff1a;https://…

Go第 14 章 :文件操作

Go第 14 章 &#xff1a;文件操作 14.1 文件的基本介绍  文件的概念 文件,对我们并不陌生,文件是数据源(保存数据的地方)的一种,比如大家经常使用的 word文档,txt文 件,excel 文件…都是文件。文件最主要的作用就是保存数据,它既可以保存一张图片,也可以保持视频,声 音… …

排序分页多表查询

文章目录一、排序ORDER BY排序规则单列排序多列排序二、分页LIMIT背景实现格式举例公式优点三、多表查询笛卡尔积&#xff08;或交叉连接&#xff09;的理解解决笛卡尔积问题多表查询分类等值连接非等值连接自连接内连接 vs 外连接SQL99实现多表查询基本语法内连接&#xff08;…

测试人员怎么对待Bug

测试人员如何描述发现的Bug咱们提Bug至少要包含这个问题出现的版本&#xff0c;问题出现的环境&#xff0c;问题出现的步骤&#xff0c;预期结果&#xff0c;实际结果。但不限于标题&#xff0c;bug归属&#xff0c;bug等价等等举个栗子&#x1f601;很容易发现二维码被登入页面…