9.Nuxt.js的使用

news2024/11/23 23:47:07

九.Nust.js的使用

1.什么是SEO

2.百度的搜索结果

3.服务器端和客户端渲染

4.Nuxt.js技术简介

5.Nuxt.js的路由(使用提供的nuxt-app项目初始化)

6.Nuxt.js的页面布局和整体配置

7.Nuxt.js整合axios

九.Nust.js的使用

1.什么是SEO

①SEO

  • SEO是通过技术手段增加百度之后的自然排名

②百度搜索引擎

  • 百度竞价(广告靠前)
  • 技术手段
  • 访问量

③为什么SEO

  • 新公司没有资本竞价,访问量也很少
  • 只能通过技术手段提升自然排名

2.百度的搜索结果

①如何获取网页

  • 爬虫在互联网爬取网页
  • 然后将网页放在数据库中并创建索引库
  • 用户搜索即在索引库中搜索

②爬虫喜欢的网页

  • restful风格
  • 关键字的设置(keywords,description,title的设置)
  • 对ajax返回的json数据不友好,对js数据不友好,喜欢纯html文档

3.服务器端和客户端渲染

①服务器端渲染

  • 返回的直接是html
  • 例如:jsp,thymeleaf
  • 有利于SEO,但是不利于开发

②客户端渲染(浏览器)

  • 返回的是js
  • 例如:vue的ajax请求获取数据
  • 不利于SEO,但是利于开发

4.Nuxt.js技术简介

①Nuxt.js创建前端服务器

  • 即仍然是前后端分离开发
  • 但是前端服务器来渲染页面然后返回html

②Nuxt.js与浏览器渲染对比

  • Nuxt.js通过在前端完成渲染返回html
  • 浏览器渲染直接返回js在浏览器中进行js的渲染

5.Nuxt.js的路由

总体使用

  • 要控制页面跳转 将页面放在pages目录下
  • 页面跳转可以通过目录访问
  • 页面跳转方式
    基本路由: /lend -->pages/lend/index.vue
    动态路由:/lend/1–>pages/lend/_id.vue页面,并通过 this.$route.params.id 获取动态路径
    嵌套路由(路由出口): NuxtChild 来指明嵌套路由的出口(模板的位置,默认为同名包下的index.vue)

①页面

  • 默认页面都放在pages目录下
  • index.vue为首页即可以直接访问http://localhost:3000访问
  • 其他的页面都可以直接在url访问(自动添加路由)

②页面实例

  • 文档结构
    访问地址为http://localhost:3000
    http://localhost:3000/lend(默认访问首页pages/lend/index.vue)
    http://localhost:3000/lend/1(访问_id.vue,前面的_id为参数,可以根据url封装)
    在这里插入图片描述
  • 首页展示
    pages/index.vue
<template>
  <div>
    <NuxtLink to="/about">
      关于我们
    </NuxtLink>
    <NuxtLink to="/lend">
      我要投资
    </NuxtLink>
    <NuxtLink to="/user">
      用户中心
    </NuxtLink>
    <a href="http://atguigu.com" target="_blank">尚硅谷</a>
    <h1>Home page</h1>
  </div>
</template>

  • lend页面展示
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

pages/lend/_id.vue

<template>
  <div>这个投资产品是:{{ id }}</div>
</template>

<script>
export default {
  data() {
    return {
      id: null,
    }
  },
  created() {
    this.id = this.$route.params.id
  },
}
</script>

pages/lend/index.vue

<template>
  <div>
    <h1>投资产品列表</h1>
    <NuxtLink to="/lend/1">
      产品1
    </NuxtLink>
    <NuxtLink to="/lend/2">
      产品2
    </NuxtLink>
  </div>
</template>

③嵌套路由

  • 访问pages/user是访问pages/user/index.vue还是pages/user.vue
  • 嵌套路由:即访问的是pages/user.vue,其中可以设置默认路由出口模板即为pages/user/index.vue中的内容,可以设置其他模板渲染该路由出口
  • 嵌套路由
    在这里插入图片描述
    在这里插入图片描述
    pages/user.vue
<template>
  <div>
    <h1>用户中心</h1>

    <!--/user/index.vue-->
    <NuxtLink to="/user">个人中心</NuxtLink>

    <!--/user/user.vue-->
    <NuxtLink to="/user/user">我的投资</NuxtLink>
    <!--嵌套路由出口,根据上述模板更改,默认为出现/user/index.vue-->
    <NuxtChild />
  </div>
</template>

<script>
export default {
  layout: 'my',
}
</script>

pages/user/index.vue

<template>
  <div>
    <h2>我的账户</h2>
  </div>
</template>

pages/user/user.vue

<template>
  <div>
    <h2>我的投资</h2>
  </div>
</template>

6.Nuxt.js的页面布局和整体配置

①页面布局

  • 默认使用layouts/default.vue
<template>
  <div>
    <!--页面布局公共尾部-->
    <div>这是网站公共的头部</div>

    <!--页面占位符-->
    <Nuxt />

    <!--页面布局公共尾部-->
    <div>这是网站公共的底部</div>
  </div>
</template>

  • 展示
    在这里插入图片描述
  • 自定义布局
    layouts/my.vue
<template>
  <div>
    <!--页面布局公共尾部-->
    <div>自定义的头部</div>

    <!--页面占位符-->
    <Nuxt />

    <!--页面布局公共尾部-->
    <div>自定义的底部</div>
  </div>
</template>

引入自定义布局

<script>
export default {
  layout: 'my',
}
</script>

②页面整体配置

nuxt.config.js

module.exports = {
  head: {
    title: '尚融宝',
    meta: [
      { charset: 'utf-8' },
      { name: 'viewport', content: 'width=device-width, initial-scale=1' },
      {
        hid: 'meta-key-words',
        name: 'keywords',
        content:
          '尚融宝官网_纽交所上市企业,网络借贷平台,解决个人小额借款,短期借款问题, 资金银行存管,安全保障。',
      },
      {
        hid: 'description',
        name: 'description',
        content:
          '尚融宝官网_纽交所上市企业,网络借贷平台,解决个人小额借款、短期借款问题。 资金银行存管,安全保障。',
      },
    ],
    link: [{ rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }],
  },
  css: [
    // CSS file in the project
    '~/assets/css/main.css',
  ],
  server: {
    port: 3001, // default: 3000
  },
}

/assets/css/main.css

body {
  background-color: pink;
}

7.Nuxt.js整合axios

使用

  • 前端服务器使用asyncData块和同步方法完成ajax请求
  • 并且由于asyncData块类似静态方法最先执行,最先渲染后返回给前端页面
  • 注意
    created执行的流程是在前端浏览器完成
    asyncData的执行流程是在前端服务器完成,然后返回给前端浏览器端。可以理解为静态方法,先渲染再返回。

①整合axios

nuxt.config.js中添加配置

modules: [
    '@nuxtjs/axios', //引入axios模块
  ],
  //引入基本地址,后面访问直接/
  axios: {
    // Axios options here
    baseURL: 'http://icanhazip.com',
  },
  //引入axios拦截器
  plugins: ['~/plugins/axios'],

/plugins/axios

export default function({ $axios, redirect }) {
  $axios.onRequest((config) => {
    console.log('执行请求拦截器 ' + config.url)
  })

  $axios.onResponse((response) => {
    console.log('执行响应拦截器')
    return response
  })

  $axios.onError((error) => {
    console.log(error) // for debug
  })
}

②对首页面修改为前端服务器渲染后返回到浏览器

pages\index.vue

<template>
  <div>
    <NuxtLink to="/about">
      关于我们
    </NuxtLink>
    <NuxtLink to="/lend">
      我要投资
    </NuxtLink>
    <NuxtLink to="/user">
      用户中心
    </NuxtLink>
    <a href="http://atguigu.com" target="_blank">尚硅谷</a>
    <h1>主页面e</h1>
    <p>您的ip是{{ ip1 }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      ip: null,
    }
  },
  //客户端渲染
  created() {
    //get
    // this.$axios.get('http://icanhazip.com').then((response) => {
    //   console.log(response)
    //   this.ip = response.data
    // })
    //$get直接将response.data返回为response
    // this.$axios.$get('http://icanhazip.com').then((response) => {
    //   console.log(response)
    //   this.ip = response
    //})
  },
  //前端服务器渲染
  //实现服务器端的数据渲染(渲染数据到html返回浏览器段),静态方法,在前端的服务器优先执行
  //结构的形式
  //异步操作
  //使用async和await来同步
  async asyncData({ $axios }) {
    console.log('asyncData')
    //异步操作
    //加上await变为同步操作
    let response = await $axios.$get('/')
    return {
      ip1: response, //这种写法的问题是:前面的远程调用是异步的,无法在这获取到response
    }
  },
}
</script>

未更新

未更新

未更新

未更新

未更新

未更新

未更新

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

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

相关文章

elasticSearch数据存储与搜索基本原理

1.缘起&#xff1a; 为啥想学习es&#xff0c;主要是在工作中会用到&#xff0c;但是因为不了解原理&#xff0c;所以用起来畏手畏脚的&#xff0c;就想了解下es是怎么存储数据&#xff0c;以及es是怎么搜索数据的&#xff0c;我们平时应该如何使用es&#xff0c;以及使用时候…

springboot+jwt令牌简单登录案例

1. 什么是JWT&#xff1f;JSON Web Token JSON Web Token (JWT)是⼀个开放标准(RFC 7519)&#xff0c;它定义了⼀种紧凑的、⾃包含的⽅式&#xff0c;⽤于 作为JSON对象在各⽅之间安全地传输信息。该信息可以被验证和信任&#xff0c;因为它是数字签名的。 1.1 什么时候应该⽤…

【Linux】应用层协议—http

&#x1f387;Linux&#xff1a; 博客主页&#xff1a;一起去看日落吗分享博主的在Linux中学习到的知识和遇到的问题博主的能力有限&#xff0c;出现错误希望大家不吝赐教分享给大家一句我很喜欢的话&#xff1a; 看似不起波澜的日复一日&#xff0c;一定会在某一天让你看见坚持…

DevData Talks | 微众银行有哪些研发效能实践与思考?一起来拓展认知边界!

本期 DevData Talks 直播活动中&#xff0c;我们非常高兴地邀请到了微众银行研发效能负责人余伟老师与我们分享微众银行在研发效能实践方面的经验与方法。 微众银行是一家面向互联网的银行&#xff0c;从诞生之日起就一直致力于快速迭代、稳健可靠的业务支持。面对金融和互联网…

ORACLE EBS 系统架构与应用实践(二)

四、ORACLE EBS的系统集成性 这里的所谓系统“集成性”&#xff0c;既非指“技术层面”的集成&#xff0c;也非指模块“应用层面”的集成&#xff0c;而是指企业管理发展过程中内在“核心要素”的集成。有人以为&#xff0c;一个ERP产品所包含的模块数量足够多、企业上线的模块…

【大数据基础】基于信用卡逾期数据的Spark数据处理与分析

https://dblab.xmu.edu.cn/blog/2707/ 实验过程 数据预处理 本次实验数据集来自和鲸社区的信用卡评分模型构建数据&#xff0c;以数据集cs-training.csv为分析主体&#xff0c;其中共有15万条记录&#xff0c;11列属性。 每个数据包含以下字段&#xff1a; 字段名称 字段含义…

【PyTorch】第四节:梯度下降算法

作者&#x1f575;️‍♂️&#xff1a;让机器理解语言か 专栏&#x1f387;&#xff1a;PyTorch 描述&#x1f3a8;&#xff1a;PyTorch 是一个基于 Torch 的 Python 开源机器学习库。 寄语&#x1f493;&#xff1a;&#x1f43e;没有白走的路&#xff0c;每一步都算数&#…

java--HtmlUnit--模拟浏览器操作--自动化操作浏览器--自动登录校园网为案例

写在前面&#xff1a; 闲来无事&#xff0c;因为宿舍每次嫌登录校园网有点免费。然后想着能不能一键自动化实现。然后更麻烦了&#xff0c;哈哈哈。不过倒是写一次代码就可以了。 可能不是特别系统&#xff0c;因为资料太少了。都是案例驱动找的资料。花了3大节课才搞完了。 会…

Redis运维之swap影响及解决方案

一、操作系统SWAP swap空间对于操作系统来说比较重要&#xff0c;当我们使用操作系统的时候&#xff0c;如果系统内存不足&#xff0c;常常会将一部分内存数据页进行swap操作&#xff0c;以解决临时的内存困境。swap空间由磁盘提供&#xff0c;对于高并发场景下&#xff0c;sw…

全球土壤湿度数据获取方法

土壤湿度亦称土壤含水率&#xff0c;表示土壤干湿程度的物理量。是土壤含水量的一种相对变量。通常用土壤含水量占干土重的百分数是示&#xff0c;亦称土壤质量湿度&#xff0c;如用土壤水分容积占土壤总容积的百分数表示&#xff0c;则称土壤容积湿度。通常说的土壤湿度&#…

Vivado中VIO IP核的使用

Vivado中VIO IP核的使用一、写在前面二、VIO IP核配置三、VIO联调四、写在后面一、写在前面 Vivado中的VIO&#xff08;Virtual Input/Output&#xff09; IP核是一种用于调试和测试FPGA设计的IP核。它允许设计者通过使用JTAG接口读取和写入FPGA内部的寄存器&#xff0c;从而检…

【JavaEE】关于synchronized总结-Callable用法及JUC的常见问题

博主简介&#xff1a;想进大厂的打工人博主主页&#xff1a;xyk:所属专栏: JavaEE初阶synchronized原理是什么&#xff1f;synchronized到底有什么特点&#xff0c;synchronized的锁策略是什么&#xff0c;是怎么变化的呢&#xff1f;本篇文章总结出, Synchronized 具有以下特性…

【Java|golang】1041. 困于环中的机器人

在无限的平面上&#xff0c;机器人最初位于 (0, 0) 处&#xff0c;面朝北方。注意: 北方向 是y轴的正方向。 南方向 是y轴的负方向。 东方向 是x轴的正方向。 西方向 是x轴的负方向。 机器人可以接受下列三条指令之一&#xff1a; “G”&#xff1a;直走 1 个单位 “L”&…

Markdown 语法大全

Markdown是一种轻量级标记语言&#xff0c;常用于撰写博客、文档、论文等。它可以让你使用易读易写的纯文本格式来编写文档&#xff0c;然后通过转换成有效的HTML文档进行发布。以下是Markdown常用的语法&#xff1a; 这里写目录标题标题列表引用一级引用嵌套引用粗体和斜体删除…

技术复盘(1)--redis

技术复盘--redis技术复盘(1)--redis资料地址准备工作发展史redis-windowsredis-windows-说明redis-centos7安装jdk安装redisredis-key基本命令redis-string命令redis-list命令redis-set命令redis-hash命令redis-zset命令redis-geospatial命令redis-hyperloglog命令redis-bitmap…

【Linux驱动开发】024 INPUT子系统

一、前言 按键、鼠标、键盘、触摸屏等都属于输入(input)设备&#xff0c;Linux 内核为此专门做了一个叫做 input子系统的框架来处理输入事件。输入设备本质上还是字符设备&#xff0c;只是在此基础上套上了 input 框架&#xff0c;用户只需要负责上报输入事件&#xff0c;比如…

文本聚类与摘要,让AI帮你做个总结

你好&#xff0c;我是徐文浩。 上一讲里&#xff0c;我们用上了最新的ChatGPT的API&#xff0c;注册好了HuggingFace的账号&#xff0c;也把我们的聊天机器人部署了出去。希望通过这个过程&#xff0c;你对实际的应用开发过程已经有了充足的体验。那么这一讲里&#xff0c;我们…

[目标识别-论文笔记]Object Detection in Videos by Short and Long Range Object Linking

文章标题&#xff1a;2018_Cite13_Tang——Object Detection in Videos by Short and Long Range Object Linking 这篇论文也被叫做“2019_Cite91_TPAMI_Tang——Object Detection in Videos by High Quality Object Linking” 如果这篇博客对你有帮助&#xff0c;希望你 点赞…

ES索引库操作

文章目录1、对索引库的操作&#xff1a;创建、删除、查看2、文档操作3、 RestClient操作索引库4、利用RestClient实现文档的CRUD5、 批量导入功能有了索引库相当于数据库database&#xff0c;而接下来&#xff0c;就是需要索引库中的类型了&#xff0c;也就是数据库中的表&…

nssctf web入门(1)

这里通过nssctf的题单web安全入门来写&#xff0c;会按照题单详细解释每题。题单在NSSCTF中。 想入门ctfweb的可以看这个系列&#xff0c;之后会一直出这个题单的解析&#xff0c;题目一共有28题&#xff0c;打算写10篇。 [SWPUCTF 2021 新生赛]jicao [SWPUCTF 2021 新生赛]j…