Nuxt.js

Nuxt 目录

1.nuxt目录 项目编译后目录 相当于classes
2.Component 组件目录
3.layouts 布局目录
4.pages 所有页面目录
5.plugins 插件目录
6.static 静态资源目录,用于存放不需要编译js css
7.store vuex 目录
8.nuxt.config.js nuxt核心配置
9.package.json vue项目核心配置

nuxt.js的用处

在学习nuxt.js中 , 我们首先是要认知以下三个:

  1. SPA : 单页web应用 , 使用vue实现SPA ,不利于seo ,vue响应给浏览器的是程序而不是数据
  2. SEO : 搜索引 优化 : 提高收录, 提高权重搜索确定结果排序
  3. SSR : 服务端渲染 , 网页是通过服务端渲染生成传输给客户端
    如图所示:
    在这里插入图片描述

自定义axios

1.nuxt.config.js 配置baseResult 路径
2.在插件 可以获的整合后的axios : exprop default ({KaTeX parse error: Expected 'EOF', got '}' at position 6: axios}̲,jnject)={} 3.对…request.函数名 (findAll) ()
asyncDate 和fetch中使用 : context .app.$request.fimclAA()

编写api.js 对 内置的 $axios进行增强

//自定义函数
const request = {
test : (params) => {
return axios.get(’/web-service/test’,{
params
})
},
}

var axios = null
export default ({ $axios }, inject) => {

//3) 保存内置的axios
axios = $axios

//4) 将自定义函数交于nuxt
// 使用方式1:在vue中,this. r e q u e s t . x x x ( ) / / 使 用 方 式 2 : 在 n u x t 的 a s y n c D a t a 中 , c o n t e n t . a p p . request.xxx() // 使用方式2:在nuxt的asyncData中,content.app. request.xxx()//使2nuxtasyncDatacontent.app.request.xxx()

inject(‘request’, request)
}

路由

1.路由概述

Nuxt.js 依据 pages 目录结构自动生成 vue-router 模块的路由配置。
要在页面之间使用路由,我们建议使用 标签。
是vue原生态切换路径标签。
在原生态的基础上,进行了增强
2基础路由
自动生成基础路由规则

路径件位置及其名称
/pages/index.vue
-/user--pages/user/index.vue-
-/user/one--pages/user/one.vue
  • 情况1:访问路径,由pages目录资源的名称组成(目录名称、文件的名称)

    • 资源位置: ~/pages/user/one.vue
    • 访问路径:http://localhost:3000/user/one
  • 情况2:每一个目录下,都有一个默认文件 index.vue

    • 资源位置: ~/pages/user/index.vue
    • 访问路径:http://localhost:3000/user

动态路由
在 Nuxt.js 里面定义带参数的动态路由,需要创建对应的以下划线作为前缀的 Vue 文件 或 目录

路由中路径匹配组件位置及其名称
/pages/index.vue
- /user/:id--pages/user/_id.vue
-/:slug--pages/_slug/index.vue-
-
/:slug/commentspages/_slug/comments.vue

动态命名路由

路径 “/news/123”匹配“_id.vue”还是“_name.vue”?
我们可以使用解决以上问题
第2新闻
第3新闻
通过name 确定组件名称:“xxx-yyy”
通过params 给对应的参数传递值

ajax操作

使用axios发送ajax
在vue页面中,通过 this. a x i o s . x x x ( ) 操 作 a j a x 。 t h i s . axios.xxx() 操作ajax。this. axios.xxx()ajaxthis.axios 与之前 axios等效。

this.KaTeX parse error: Unexpected character: '' at position 160: …ncData发送异步数据** ̲发送一个ajax 通过 co…axios 来发送ajax请求,与之前使用 axios等效。
async asyncData( content ) {
let { data } = await content.$axios.get(’/web-service/news’,{
params : {
pageNum : 1,
pageSize : 8 ,
sortWay : ‘asc’
}
})
return { news : data.data }
},
发送多个ajax

async asyncData( content ) {
let [结果1,结果2] = await Promise.all([ ajax请求1, ajax请求2])
return {
topNews: 结果1的数据,
categorys: 结果2的数据
}
},

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值