开始使用Nuxt.js

从零开始打造流程图、拓扑图项目【Nuxt.js + Element + Vuex】 一 、通过云开发平台快速创建初始化应用 1.创建相关应用模版请参考链接:基于 vue.js 的 SSR 技术—Nuxt.js // 注意在后面提示中,上移下移,按空格选中 Element2.完成创建后就可以在github中查看到新增的Nuxt仓库 二 、 本地编写 流程图、拓扑图项目 1.将应用模版克隆到本地 ● 首先假定你已经安装了Git、node,没有安装请移步node官网进行安装。克隆项目: git clone + 项目地址● 进入项目文件 cd nuxtJs● 切换到feature/1.0.0 阅读详情

Nuxt.js简单的说是Vue.js的通用框架,最常用的就是用来作SSR(Server Side Render服务端渲染).再直白点说,就是Vue.js原来是开发SPA(Single Page Application单页应用)的,但是随着技术的普及,很多人想用Vue开发多页应用,并在服务端完成渲染.这时候就出现了Nuxt.js这个框架,它简化了SSR的开发难度.还可以直接用命令把我们制作的vue项目生成静态HTML.

那服务器端渲染到底有什么好处?

最主要的原因时SPA(单页应用)不利于搜索引擎的SEO操作。比如你作一个新闻网站,流量的一个主要来源是通过百度、谷歌、bing这些搜索引擎,但是它们对SPA的抓取并不好,特别是百度根本没法抓取到SPA的内容页面,所以我们必须把我们的应用在服务端渲染成适合搜索引擎抓取的页面,再下载到客户端。那Nuxt.js适合作新闻、博客、电影、咨询这样的需要搜索引擎提供流量的项目。如果你要作移动端的项目,就没必要使用这个框架了。

什么是SSR

SSR,即服务器渲染,就是在服务器端将对Vue页面进行渲染生成html文件,将html页面传递给浏览器。

SSR两个优点:

SEO 不同于SPA的HTML只有一个无实际内容的HTML和一个app.js,SSR生成的HTML是有内容的,这让搜索引擎能够索引到页面内容。
更快内容到达时间 传统的SPA应用是将bundle.js从服务器获取,然后在客户端解析并挂载到dom。而SSR直接将HTML字符串传递给浏览器。大大加快了首屏加载时间。

Nuxt.js的官方网站是这样介绍的:

Nuxt.js 是一个基于 Vue.js 的通用应用框架。
通过对客户端/服务端基础架构的抽象组织,Nuxt.js 主要关注的是应用的 UI渲染。

一. Nuxt.js安装

####1.使用npm或者yarn来安装vue-cli这个框架

npm install -g vue-cli
or
yarn global add @vue/cli

安装完成后可以使用vue -V 来测试是否安装成功。(注意:这里要使用大写的V,小写无效)
####2.使用vue安装 nuxt
安装好vue-cli后,就可以使用init命令来初始化Nuxt.js项目。

vue init nuxt/starter

这时候他会在github上下载模版,然后会询问你项目的名称叫什么,作者什么的,这些完全可以根据自己的爱好填写。
####3.使用npm install安装依赖包

npm install

这个过程是要等一会的,如果你这个过程安装失败,也不要慌张,你可以直接该删除项目中的node_modules文件夹后,重新npm install进行安装。
####4.使用npm run dev 启动服务

npm run dev

####5.在浏览器输入 localhost:3000,可以看到结果。

Hello World
学程序国际惯例的第一节都是来个Hello World ,我们先来体验一下。
在项目根目录下找到/pages/index.vue文件,让后把项目名称改写成Hello World。框架支持热更新,所以你不用刷新就自动更新了。

二.Nuxt目录结构详讲

|-- .nuxt                            // Nuxt自动生成,临时的用于编辑的文件,build
|-- assets                           // 用于组织未编译的静态资源入LESS、SASS 或 JavaScript
|-- components                       // 用于自己编写的Vue组件,比如滚动组件,日历组件,分页组件
|-- layouts                          // 布局目录,用于组织应用的布局组件,不可更改。
|-- middleware                       // 用于存放中间件
|-- pages                            // 用于存放写的页面,我们主要的工作区域
|-- plugins                          // 用于存放JavaScript插件的地方
|-- static                           // 用于存放静态资源文件,比如图片
|-- store                            // 用于组织应用的Vuex 状态管理。
|-- .editorconfig                    // 开发工具格式配置
|-- .eslintrc.js                     // ESLint的配置文件,用于检查代码格式
|-- .gitignore                       // 配置git不上传的文件
|-- nuxt.config.json                 // 用于组织Nuxt.js应用的个性化配置,已覆盖默认配置
|-- package-lock.json                // npm自动生成,用于帮助package的统一性设置的,yarn也有相同的操作
|-- package-lock.json                // npm自动生成,用于帮助package的统一性设置的,yarn也有相同的操作
|-- package.json                     // npm包管理配置文件

Nuxt常用配置项

已经了解Nuxt生成项目的目录结构后,其实就可以愉快的玩耍了,但是感觉还是收到了很多约束,比如开发时的IP地址和端口(localhost:3000)和公用的CSS,这节课我们就学习一些Nuxt的常用配置,让我们开发的更自由。
#####配置全局CSS
在开发多页项目时,都会定义一个全局的CSS来初始化我们的页面渲染,比如把padding和margin设置成0,网上也有非常出名的开源css文件normailze.css。要定义这些配置,需要在nuxt.config.js里进行操作。

比如现在我们要把页面字体设置为红色,就可以在assets/css/normailze.css文件,然后把字体设置为红色。

/assets/css/normailze.css

html{
    color:red;
}

/nuxt.config.js

  css:['~assets/css/normailze.css'],

设置好后,在终端输入npm run dev 。然后你会发现字体已经变成了红色。

四.Nuxt的路由配置和参数传递

学习前端框架都要学习路由机制,因为路由可以体现我们的业务逻辑,把模块串联起来,让程序焕发光彩.那简单的说路由就是我们的跳转机制,也可以简单理解成连接跳转.Nuxt.js的路由并不复杂,它给我们进行了封装,让我们节省了很多配置环节.
我们可以直接使用a标签跳转,但是Nuxt.js并不推荐这种方法,它为我们准备了标签(vue中叫组件).

<template>
  <div>
    <ul>
      <li><nuxt-link :to="{name:'index'}">HOME</nuxt-link></li>
      <li><nuxt-link :to="{name:'about'}">ABOUT</nuxt-link></li>
      <li><nuxt-link :to="{name:'news'}">NEWS</nuxt-link></li>
    </ul>
  </div>
</template>

<script>

export default {
  components: {
   
  }
}
</script>

<style>

</style>

params传递参数

路由经常需要传递参数,我们可以简单的使用params来进行传递参数,我们现在向新闻页面(news)传递个参数,然后在新闻页面进行简单的接收。

我们先修改pages下的Index.vue文件,给新闻的跳转加上params参数,传递3306ID。

<template>
  <div>
    <ul>
      <li><nuxt-link :to="{name:'index'}">HOME</nuxt-link></li>
      <li><nuxt-link :to="{name:'about'}">ABOUT</nuxt-link></li>
      <li><nuxt-link :to="{name:'news',params:{newsId:3306}}">NEWS</nuxt-link></li>
    </ul>
  </div>
</template>
 
<script>
 
export default {
  components: {
   
  }
}
</script>
 
<style>
 
</style>

在news文件夹下的index.vue里用$route.params.newsId进行接收,代码如下。

<template>
  <div>
      <h2>News Index page</h2>
      <p>NewsID:{{$route.params.newsId}}</p>
       <ul>
        <li><a href="/">Home</a></li>
      </ul>
  </div>
</template>

asyncData方法获取数据

在项目中需要在初始化页面前先得到数据,也就是我们常说的异步请求数据。Nuxt.js贴心的为我们扩展了Vue.js的方法,增加了anyncData。从名字上就很好理解,这是一个异步的方法。
创建远程数据
在这里制作一些假的远程数据,我选择的网站是myjson.com,它是一个json的简单仓库,学习使用是非常适合的。
我们打开网站,在对话空中输入JSON代码,这个代码可以自己随意输入哦。

{
  "name": "优快云",
  "age": 18,
  "interest": "I love coding!"
}

输入后,网站会给你一个地址,这就是你这个JSON仓库的地址了。

https://api.myjson.com/bins/8gdmr

安装Axios

Vue.js官方推荐使用的远程数据获取方式
是Axios,所以我们安装官方推荐的,来使用Axios,这里使用npm安装或者yarn

npm install axios --save
yarn add @nuxtjs/axios

ansycData的promise方法

我们在pages下面新建一个文件,叫做ansyData.vue。
然后写入下面的代码:

<template>
  <div>
      <h1>姓名:{{info.name}}</h1>
      <h2>年龄:{{info.age}}</h2>
      <h2>兴趣:{{info.interest}}</h2>
  </div>
</template>
<script>
import axios from 'axios'
export default {
  data(){
     return {
         name:'hello World',
     }
  },
  asyncData(){
      return axios.get('https://api.myjson.com/bins/8gdmr')
      .then((res)=>{
          console.log(res)
          return {info:res.data}
      })
      
  }
}
</script>
ansycData的await方法

当然上面的方法稍显过时,现在都在用ansyc…await来解决异步,改写上面的代码.

<template>
  <div>
      <h1>姓名:{{info.name}}</h1>
      <h2>年龄:{{info.age}}</h2>
      <h2>兴趣:{{info.interest}}</h2>
 
     
  </div>
</template>
<script>
import axios from 'axios'
export default {
  data(){
     return {
         name:'hello World',
     }
  },
  async asyncData(){
      let {data}=await axios.get('https://api.myjson.com/bins/8gdmr')
      return {info: data}
      
  }
}
</script>
nuxt.js——搭建nuxt项目(可详细了!) 前言: nuxt.js是基于vue的一套可实现SSR服务端渲染的前端框架,所以要使用nuxt.js,前提是需要会vue,因为nuxt.js开发规则和vue相同,只是在vue的基础上扩展了一些功能。 本节教程题纲: 安装node环境和vue-cli 基于vue安装nuxt 本地运行nuxt 教程正文: 安装node环境和vue-cli: node.js可通过node官网进行下载安装,详细的可以... 阅读详情

相关推荐

Nuxt.js - 从零开始构建服务器端渲染应用

在本文中, 我们将探索如何使用Nuxt.js构建服务器端渲染(SSR)应用程序。Nuxt.js是一个基于Vue.js的开源框架,它提供了一种简单而强大的方式来构建通用的、服务器端渲染的Vue.js应用程序。我们将一步一步地介绍如何设置和配置Nuxt.js,并通过一个示例应用程序来演示其用法。

XhClojure的博客 256

nuxt 访问本地json数据

最近使用Nuxt开发一个官网,暂时没有后端同学介入,但是又有一些重复的数据,因此自己写了个json文件。引用的时候便遇到了问题。 直接引用 //如果不怕麻烦,确实可以通过 ../ ../.../ ,但是想想就好,毕竟太喽了些 import teamJson from '../assets/json/team.json' 配置别名 通过配置nuxt.config.js,不清楚的请移步这里 build: { /* ** You can extend webpack config her

拿回忆下酒 3325

nuxt-jsonapi:JSON格式

nuxt-jsonapi 易于JSON:Nuxt.js的API客户端集成 介绍 nuxt-jsonapi增加了易于客户端集成到 。 它是出色的 JSON:API客户端的松散包装。 此模块全局注入$jsonApi实例,您可以使用this.$jsonApi在任何地方访问客户端。 对于插件,asyncData,fetch,nuxtServerInit和Middleware,您可以从context.$jsonApi访问它。 设置 将nuxt-jsonapi依赖项添加到您的项目中 yarn add nuxt-jsonapi # or npm install nuxt-jsonapi 添加nuxt-jsonapi到modules的部分nuxt.config.js { modules : [ // Simple usage 'nuxt-jsonapi' , // Wi

Nuxt 出现“[object Object]“ is not valid JSON页面,谷粒学院出现出现 Unexpected token o in JSON at position

出现"[object Object]" is not valid JSON,排查发现,是cookies存在[object Object]问题,将[object Object]转换成JSON,使用JSON.stringify([object Object])。某个页面中使用了asyncData({ params, error })在使用nuxt 创建的谷粒学院前台。

xzhzhh的博客 388

【硬件相关】IB网与以太网核心技术解析及高性能网络部署指南

本文深入解析了IB网与以太网的核心技术差异,包括协议栈、流量控制机制及硬件架构,并提供了高性能网络部署的实战指南。通过对比测试和调优案例,展示了IB网在低延迟和高负载下的优势,以及混合组网中的创新应用,助力超算集群和高效网络部署。

weixin_29311017的博客 99

【Ultrascale+ MPSOC学习记录】10、PS端以太网使用lwip

还是参考ALINX教程,学习PS端以太网如何使用,从教程中可以看到,开发板使用了一个xilinx默认不支持的phy JL2121,所以需要修改lwip的库源码。

ryo891012的博客 881

Nuxt.js

在上面的示例中,我们简单地更改了message的值,但在实际应用中,你可能会在这里调用API获取数据。:类似于vue.js中的导航守卫,可以是全局的,路由的,组件的。可以在这个生命周期中进行用户是否登录判断,在全局nuxt.config.js进行配置,中间件运行,有三种。:在实例创建完成后被调用,在这一步,实例已完成以下的配置:数据观测(data observer),属性和方法的运算,:异步处理数据,在服务端渲染页面之后,客户端渲染页面之前调用,可以进行数据请求,读取服务端数据提交给vuex。

min的博客 2993

别再只玩积木了!用乐高EV3和官方软件,手把手教你做个能巡线的小车(附完整代码)

本文详细介绍了如何利用乐高EV3套件和官方软件制作智能巡线机器人,从硬件组装到软件编程全面覆盖。通过传感器原理讲解、控制算法调试等工程化细节,帮助读者掌握机器人开发的核心理念,特别适合STEAM教育和硬件编程爱好者实践。

weixin_30776273的博客 449

一文搞定nuxt.js搭建到部署(ssr和静态部署)

uxt 是一个更高级别的 Node.js web 开发框架,用于创建 Vue 应用,可在两种不同模式下开发和部署:通用(SSR)或单页应用(SPA)。此外,您可以在 Nuxt 中将 SSR 和 SPA 部署为静态生成的应用。即使您可以选择 SPA 模式,Nuxt 的全部功能仍在于其通用模式或用于构建通用应用的服务器端渲染(SSR)。通用应用用于描述可以在客户端和服务器端执行的 JavaScript 代码。SSR是服务端渲染:在后台将vue实例渲染为HTML字符串直接返回,在前端激活为交互程序。

weixin_45636198的博客 1万+

MATLAB与STK互联23:卫星对象操作(14)—仿真分析案例1,建立8个地面站,分析对卫星的可见性

学习到这里,我们有必要做个仿真分析案例,把之前我们学习的零散知识点串起来,看一下在真实的分析中怎么应用。 分析要求:建立8个地面站,分析每个地面站对某个轨道高度500km、倾角60°圆轨道的卫星,1天内的可见次数、可见弧长以及可见弧段间隔列表。 基本约束:地面站仰角8°~90°,作用距离<2000km,太阳矢量与地面站到卫星视线夹角不小于15°,可见弧段应大于30s。地面站站址可随机生成,但要求在南北纬50°范围内。 下面上代码: uiap = actxserver(‘STK11.application’)

ltylty001的博客 7491

用Python进行GEO数据挖掘(学习笔记四):富集分析

该笔记详细解释了富集分析的工作原理,并简要地利用gseapy在python中进行富集分析的操作。

m0_64111502的博客 5649

Nuxt.JS实战指南:从入门到精通的练习之旅

Nuxt.js是一个基于Vue.js的通用应用框架,主要关注的是应用的UI渲染,利用Vue.js开发服务端渲染的应用所需要的各种配置。

西瓜程序猿 2554

【嵌入式DIY实例-Arduino篇】-脉搏传感器监测脉搏率 (BPM)及可视化

在本文中,我们将使用 Arduino 和脉搏传感器来测量心率 (BPM)。 在文章中,我们将向展示如何使用脉搏传感器测量您的心率(每分钟心跳次数),并在电脑上位机通过Processing来实现心率数据可视化。同时使用LCD16×2 显示屏显示脉搏率 BPM。 该传感器易于使用和操作。 只需将手指放在传感器顶部,它就会测量心跳变化。

视觉与物联智能 834

Nuxt.js 项目安装指南:从零开始构建现代化应用

Nuxt.js 是一个基于 Vue.js 的通用应用框架,它简化了服务端渲染应用的开发流程。本文将详细介绍如何安装和初始化一个 Nuxt.js 项目,适合不同技术背景的开发者。 ## 环境准备 在开始 Nuxt.js 项目前,需要确保开发环境满足以下要求: 1. **Node.js**:至少 v10.13 版本,推荐安装最新的 LTS 版本 2. **代码编辑器**:推荐使用 VSCode

gitblog_00205的博客 590

18、社区多能源管理与点对点能源交易优化调度策略研究

本文研究了社区多能源管理与点对点(P2P)能源交易的优化调度策略,构建了适用于单一社区多个产消者的P2P交易模型,以用户生产成本最小化为目标,设计了基于ADMM算法的迭代优化方法。通过电热联合调度与能源共享机制,结合光伏、热电联产(CHP)和储能系统(ESS),实现了用户侧能源的高效利用。仿真结果表明,引入P2P交易和CHP设备显著降低了用户能源成本,提高了电力自给率和天然气利用率,减少了对主电网的依赖。研究验证了ADMM算法在分布式优化中的有效性,为未来社区能源系统的智能化管理提供了理论支持和技术路径。

git9versioner的博客 70

嵌入式面试题精选100道及参考答案(4万字长文)

指针是C语言中一种特殊的变量,它存储的是另一个变量的内存地址。指针的使用提供了一种间接访问和操作内存的方法。地址操作:通过使用运算符,可以获取变量的地址,并将这个地址赋值给指针变量。间接引用:使用运算符可以访问指针指向的变量的值。动态内存分配:指针用于动态地分配和释放内存。数组操作:指针可以用于遍历和操作数组。函数参数:指针作为函数参数可以改变原始数据。字符串操作:在C语言中,字符串通常以字符数组的形式存在,并通过字符指针进行操作。// 指向数组的第一个元素i < 5;++i) {在这个例子中,

大模型大数据攻城狮的专栏 1971

Breeze Nuxt.js 教程:从零开始搭建Laravel Breeze的Nuxt前端

Breeze Nuxt.js 教程:从零开始搭建Laravel Breeze的Nuxt前端 项目概述 Breeze Nuxt.js 是一个基于Nuxt.js的认证入门套件,专为Laravel Breeze设计,旨在简化前后端分离应用的开发过程。它利用了Vue.js作为主要的视图库,并通过Laravel Sanctum实现认证机制,使得开发者可以迅速将功能完善的Nuxt前端与强大的Laravel后端...

gitblog_00129的博客 860

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Nuxt.js--》解锁 Nuxt 项目的潜力:从配置开始,迈向成功

博主今天开设Nuxt.js专栏,带您深入探索 Nuxt.js 的精髓,学习如何利用其强大功能构建出色的前端应用程序。我们将探讨其核心特点、灵活的路由系统、优化技巧以及常见问题的解决方案。无论您是想了解 Nuxt.js 的基础知识,还是希望掌握进阶技巧,本专栏都将满足您的需求。接下来让我们一起踏上 Nuxt.js 的旅程,开启一段令人兴奋的前端开发之旅!:是一种通过优化网站和内容,以提高在搜索引擎中的排名和可见性的过程。它是一种有助于网站获得更多有机(非付费)流量的策略和技术。

ztK63LrD的博客 1602

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

从壹开始 [ Nuxt.js ] 之二 || 项目搭建 与 接口API

前言 哈喽大家周一好,今天的内容比较多,主要就是包括:把前端页面的展示页给搭出来,然后调通接口API,可以添加数据,这两天我也一直在开发,本来想一篇一篇的写,发现可能会比较简单,就索性把项目搭建的过程简化,一次写好了,在开发 Nuxt.js 框架的过程中,我发现相比之前还是有些变化的,如果你是读过我第一个前后端分离系列的小伙伴,可能看过我简单说过Nuxt框架的一些知识《Nuxt.js 是什么?》...

weixin_30945039的博客 666

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

从壹开始 [ Nuxt.js ] 之一 || 为开源收录Bug之 TiBug项目 开篇讲

缘起 哈喽大家周二好呀,刚刚经历过了几天火车抢票,整个人都不好了,不知道小伙伴对今年的春节是否还一如既往的期待呢,眼看都要春节了,本来也想写篇2018总结篇,但是怕不免会出现鸡汤文的窠臼嫌疑,想想还是算了,这几天和老李聊起来关于写博客文章,总感觉这一系列还没有写完,或者说还有一些没有收尾好,眼看就要春节了,周末我也好好的整理整理思路,决定临时开一个4-6篇...

老张的哲学 283

从壹开始前后端分离 [ vue + .netcore 补充教程 ] 二八║ Nuxt 基础:面向源码研究Nuxt.js...

前言 哈喽大家周五好,又是一个开开心心的周五了,接下来就是三天小团圆啦,这里先祝大家节日快乐咯,希望都没有加班哈哈,今天公司发了月饼,嗯~时间来不及了,上周应该搞个活动抽中几个粉丝发月饼的,下次吧,这里先预告一下,圣诞节活动,给粉丝送苹果吧哈哈,不过听起来好 low 呀,大家有好的想法可以下边评论或者来群里一起交流哟~ 说接上文,昨天咱们第一次的接触到...

老张的哲学 379

Nuxt学习笔记

<Nuxt />

shgg2917的博客 616

安装nuxt.js环境

安装nuxt.js环境 打开终端输入以下命令: 继续输入以下命令 3.最终打开浏览器,访问http://localhost:3000/,出现以下内容,那么说明你已经安装成功了 ...

sinat_39049092的博客 493

nuxt 全局css_零基础上手nuxt

零基础上手nuxt 最近抽空看了一下nuxt觉着挺有意思,于是打算写一篇文章总结,顺便说一些遇到的一些问题,如果感觉写的不错,记得点个赞!如果有不对的地方,欢迎指正。 官方介绍 Nuxt.js 是一个基于 Vue.js 的通用应用框架。 通过对客户端/服务端基础架构的抽象组织,Nuxt.js 主要关注的是应用的 UI渲染。它的优点如下: 基于 Vue.js自动代码分层服务端渲染强大的路由功能,支...

weixin_42329733的博客 1119
上一篇: 微信小程序-豆瓣电影TOP250
下一篇: 数据库MySQL关系模型之基本概念
Co_zy
博客等级 码龄10年 887粉丝 144原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值