Vue服务端渲染框架之Nuxt

1. 什么是服务器端渲染?
服务器端渲染:后端先调用数据库,获得数据之后,将数据和页面元素进行拼装,组合成完整的HTML页面,再直接返回给浏览器,以便用户浏览。

2. 什么是客户端渲染?
客户端渲染:数据由浏览器通过ajax动态取得,再通过js将数据填充到dom元素上最终展现到网页中,这样的过程叫做客户端渲染。

3. 服务器端渲染 VS 客户端渲染?
(1)服务器端渲染需要消耗更多的服务器端资源(CPU、内存等);
(2)客户端渲染可以将静态资源部署到cdn上,实现高并发;
(3)服务端渲染对SEO更有好。

4. Vue的SSR框架?
https://github.com/vuejs/vue-hackernews-2.0

5. Nuxt的安装?
npm v5.2.0引入的一条命令(npx),引入这个命令的目的是为了提升开发者使用包内提供的命令行工具的体验。
npx方式:npx create-nuxt-app my-app
使用这条命令可以避免开发者全局安装一个脚手架。

6. Nuxt目录结构?

--nuxt
  |_ assets // 组织未编译的静态资源 如:less sass 
  |_ components // 组件目录
  |_ layouts // 组织应用的布局组件
  |_ middleware // 用于存放应用的中间件 比如一些权限请求
  |_ pages // 页面
  |_ plugins // 插件目录
  |_ static // 静态文件
  |_ store // vuex状态树文件
  |_ nuxt.config.js // nuxt的配置文件

7. nuxt引入less,使用less全局变量?
首先安装依赖,执行:npm install less less-loader @nuxtjs/style-resources sass-resources-loader --save-dev
修改nuxt.config.js文件,新增如下:

  modules: [
    '@nuxtjs/style-resources'
  ],
  styleResources: {
    less: [
      './assets/less/variable.less',
      './assets/less/mixin.less',
    ]
  },

8. nuxt中引入全局css文件?
修改nuxt.config.js文件:

  /*
  ** Global CSS
  */
  css: [
    './assets/animation/animation.css'  // animation.css文件将会全局引入
  ],

9. nuxt中路由切换的过渡效果 transition?
(1)全局过渡效果设置,在全局css文件中添加样式:

.page-enter-active, .page-leave-active {
  transition: opacity .5s;
}
.page-enter, .page-leave-active {
  opacity: 0;
}

(2)给单独的页面设置过渡效果,则先需要加上css样式,然后再在页面中设置transition属性,如下所示:

.test-enter-active, .test-leave-active {
  transition: opacity .5s;
}
.test-enter, .test-leave-active {
  opacity: 0;
}
export default {
  transition: 'test'
}

10. nuxt中融合ESLint?
在实际项目开发中,经常会使用ESLint来规范代码格式,如果在初始化Nuxt时没有引入ESLint,那么需要后续手动引入一下,过程如下:
(1)先安装一些依赖,执行npm install babel-eslint eslint eslint-friendly-formatter eslint-loader eslint-plugin-vue --save-dev
(2)在package.json文件的scripts标签中添加如下代码:

"lint": "eslint --ext .js,.vue --ignore-path .gitignore ."

(3)在项目的根目录下新增.eslintrc.js.eslintignore文件。(详细配置省略)
(4)修改nuxt.config.js文件,新增如下(目的是扩展webpack配置):

  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)/,
          options: {
            fix: true
          }
        })
      }
    }
  }

11. nuxt中融合vant框架?
在实际的项目中经常会用到一些UI框架,这里以vant举例,介绍nuxt如何引入vant UI框架:
(1)安装vant,执行:npm install vant --save
(2)在plugins文件夹下建一个vant.js文件,引入vant的css文件及相关组件,如下所示:

import Vue from 'vue'
import 'vant/lib/index.less'

import { Tabbar, TabbarItem, Toast, Button } from 'vant'
Vue.use(Tabbar).use(TabbarItem).use(Toast).use(Button)

(3)配置nuxt.config.js中的plugins,如下所示:

  plugins: [
    {
      src: '~/plugins/vant.js',
      ssr: false  // 因为是UI框架,所以可以不要服务端渲染
    }
  ],
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269