Nuxt.js(Vue SSR)项目配置以及开发细节

简介: Nuxt.js(Vue SSR)项目配置以及开发细节

一、项目中不要使用 v-if

  • 使用 v-if 会在查看源码的时候无法显示标签,需要换成 v-show

二、项目中跳转页面尽量使用 a 标签

  • 无论使用 vue router 还是使用 nuxt-link 都不如使用 a 标签,而且前两者在服务器渲染中有时候还会有别的问题发生,所以可以直接使用 a 标签省事,避免了坑。

三、项目中更换 favicon.ico 不生效,可以编译一下,启动正式环境,就生效了。

四、项目中 请求接口数据,并服务器渲染asyncData() 多接口请求的使用:

// asyncData 函数是 Nuxt.js 的生命周期函数,每个页面只能实现一次
// 多接口请求
async asyncData () {
  let [request1Data, request2Data, request3Data] = await Promise.all([
    getCreator(),
    getIndustryList()
    axios.get('http://localhost:3000/api/api/h5/creator/2795')
  ])
  return {
    creator: request1Data.data.data.channelCreator,
    videoList: request1Data.data.data.videoList,
    data2: request2Data.data
    data3: request3Data.data
  }
}
// 单个接口请求
asyncData () {
  return getCreator().then(res => {
    const { code, data } = res.data
    if (code === 0) {
      return {
        creator: data.channelCreator,
        videoList: data.videoList
      }
    }
  })
}

五、项目中 如何获取链接中带的参数,并使用:

// 这种方式获得的只能当前页面使用,但是无法参与服务器渲染使用,所以需要参与服务器渲染的还是得在 asyncData() 中获取 。
created () {
  // 初始化标签选中
  this.industry = this.$route.params.tag || 0
  // console.log(this.$route);
}
// asyncData() 函数里面会带回来一个上下文,这个对象里面有所有需要的对象集合
// https://www.nuxtjs.cn/api/context
asyncData (context) {
  ....
}
// 获取链接中带的参数
async asyncData ({ query, params }) {
  ....
}

六、项目中 自定义路由,类似 Vue 一样,找到 nuxt.config.js ,加上下面配置:

// 自定义路由,以及页面参数
router: {
  extendRoutes(routes, resolve) {
    routes.push(
      {
        name: 'creator',
        path: '/creator/:id?/:tag?',
        component: resolve(__dirname, 'pages/creator-view.vue')
      },
      {
        name: 'video',
        path: '/video/:id?',
        component: resolve(__dirname, 'pages/video-view.vue')
      }
    )
  }
},

七、项目中 添加代理,类似 Vue 一样,找到 nuxt.config.js,加上下面配置:

但是如果是 ssr 开发,就不存在跨域一说了,都是服务器直接组装好直接返回整个页面显示,因此也不需要配置。

axios: {
  proxy: true
},
proxy: {
  '/api': {
    target: 'http://10.0.90.164:8081',
    changeOrigin: true,
    pathRewrite: {
      '^/api': ''
    }
  },
},

八、项目中添加 全局样式iconfont 等等,找到 nuxt.config.js,加上下面配置:

css: [
  'ant-design-vue/dist/antd.css',
  '~/assets/css/reset.css',
  '~/assets/iconfont/iconfont.css'
],
  • 如果需要重写路由拦截也可以添加到这里面
plugins: [
  '@/plugins/antd-ui',
  // '@/plugins/router', // 路由守卫
],

九、组件新建到自带的 components 文件夹中,可以直接使用,不需要在单个页面导入

十、组件中不能通过 asyncData 获取数据,虽然支持异步请求,但是不支持服务器渲染,如果组件需要支持服务器渲染,那还是得通过路由页面一块获取数据在传给组件使用。

十一、Nuxt.js 分页获取数据(及更新子组件数据)


相关文章
|
30天前
|
Web App开发 JavaScript 前端开发
Node.js开发
Node.js开发
45 13
|
2月前
|
存储 JavaScript 前端开发
深入浅出Node.js后端开发
在数字化时代的浪潮中,后端开发作为连接用户与数据的桥梁,扮演着至关重要的角色。本文将以Node.js为例,深入探讨其背后的哲学思想、核心特性以及在实际项目中的应用,旨在为读者揭示Node.js如何优雅地处理高并发请求,并通过实践案例加深理解。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供新的视角和思考。
|
2月前
|
Web App开发 开发框架 JavaScript
深入浅出Node.js后端开发
本文将带你领略Node.js的魅力,从基础概念到实践应用,一步步深入理解并掌握Node.js在后端开发中的运用。我们将通过实例学习如何搭建一个基本的Web服务,探讨Node.js的事件驱动和非阻塞I/O模型,以及如何利用其强大的生态系统进行高效的后端开发。无论你是前端开发者还是后端新手,这篇文章都会为你打开一扇通往全栈开发的大门。
|
2月前
|
Web App开发 开发框架 JavaScript
深入浅出Node.js后端开发
在这篇文章中,我们将一起探索Node.js的奇妙世界。无论你是刚接触后端开发的新手,还是希望深化理解的老手,这篇文章都适合你。我们将从基础概念开始,逐步深入到实际应用,最后通过一个代码示例来巩固所学知识。让我们一起开启这段旅程吧!
|
1月前
|
Web App开发 JavaScript 前端开发
深入浅出Node.js后端开发
本文将带领读者从零基础开始,一步步深入到Node.js后端开发的精髓。我们将通过通俗易懂的语言和实际代码示例,探索Node.js的强大功能及其在现代Web开发中的应用。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供新的见解和技巧,让你的后端开发技能更上一层楼。
|
2月前
|
JavaScript 前端开发 API
深入理解Node.js事件循环及其在后端开发中的应用
本文旨在揭示Node.js的核心特性之一——事件循环,并探讨其对后端开发实践的深远影响。通过剖析事件循环的工作原理和关键组件,我们不仅能够更好地理解Node.js的非阻塞I/O模型,还能学会如何优化我们的后端应用以提高性能和响应能力。文章将结合实例分析事件循环在处理大量并发请求时的优势,以及如何避免常见的编程陷阱,从而为读者提供从理论到实践的全面指导。
|
2月前
|
Web App开发 JavaScript 前端开发
深入浅出Node.js后端开发
本文将带你走进Node.js的世界,从基础到进阶,逐步解析Node.js在后端开发中的应用。我们将通过实例来理解Node.js的异步特性、事件驱动模型以及如何利用它处理高并发请求。此外,文章还会介绍如何搭建一个基本的Node.js服务器,并探讨如何利用现代前端框架与Node.js进行交互,实现全栈式开发。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供新的视角和深入的理解。
30 4
|
2月前
|
JavaScript 前端开发 安全
JavaScript与TypeScript的对比,分析了两者的特性及在实际项目中的应用选择
本文深入探讨了JavaScript与TypeScript的对比,分析了两者的特性及在实际项目中的应用选择。JavaScript以其灵活性和广泛的生态支持著称,而TypeScript通过引入静态类型系统,提高了代码的可靠性和可维护性,特别适合大型项目。文章还讨论了结合使用两种语言的优势,以及如何根据项目需求和技术背景做出最佳选择。
64 4
|
2月前
|
前端开发 JavaScript 关系型数据库
基于 Vue2.0 + Nest.js 全栈开发的后台应用
Vue2 Admin 是一个基于 Vue2 和 Ant Design Pro 开发的前端项目,配合 Nest.js 构建的后端,提供了一个完整的全栈后台应用解决方案。该项目支持动态国际化、用户权限管理、操作日志记录等功能,适合全栈开发者学习参考。线上预览地址:https://vue2.baiwumm.com/,用户名:Admin,密码:abc123456。
|
2月前
|
开发框架 JavaScript 前端开发
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势。通过明确的类型定义,TypeScript 能够在编码阶段发现潜在错误,提高代码质量;支持组件的清晰定义与复用,增强代码的可维护性;与 React、Vue 等框架结合,提供更佳的开发体验;适用于大型项目,优化代码结构和性能。随着 Web 技术的发展,TypeScript 的应用前景广阔,将继续引领 Web 开发的新趋势。
43 2