一、安装和运行
https://zh.nuxtjs.org/docs/2.x/get-started/installation
http://xn--8nrx2fd2edpeyxke82b63bmt3ayi5w
二、页面、导航和路由
1、页面
创建pages目录,在pages目录中创建index.vue
代码语言:javascript复制<template>
<h1>Hello world!</h1>
</template>
启动项目
npm run dev
访问项目:http://localhost:3000/
再在pages目录中创建一个about.vue页面用于后面的测试
代码语言:javascript复制<template>
<h1>关于我们</h1>
</template>
访问页面:http://localhost:3000/about
2、导航
使用<NuxtLink>标签可以在程序中的不同页面之间导航,相当于<a>标签的作用。一般情况下我们使用<NuxtLink>连接程序内部的不同的路由地址,使用<a>标签连接站外地址。
pages/index.vue
代码语言:javascript复制<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>
3、自动路由
在vue项目中我们需要创建页面,并为每一个页面配置路由,而Nuxt会根据pages路径中的页面自动生成路由配置。
- 基本路由1: /user 指向 pages/user.vue页面
<template>
<div>
<h1>用户中心</h1>
</div>
</template>
- 基本路由2: /lend 指向 pages/lend/index.vue页面
<template>
<div>
<h1>投资产品列表</h1>
<NuxtLink to="/lend/1">
产品1
</NuxtLink>
<NuxtLink to="/lend/2">
产品2
</NuxtLink>
</div>
</template>
- 动态路由:/lend/1、lend/2 等 指向 pages/lend/_id.vue页面,过 this.$route.params.id 获取动态路径
<template>
<h1>投资产品 {{ id }}</h1>
</template>
<script>
export default {
data() {
return {
id: null,
}
},
created() {
this.id = this.$route.params.id
},
}
</script>
- 嵌套路由:如果 pages/user.vue 和 pages/user/index.vue 同时存在,我们可以利用嵌套路由pages/user.vue
<template>
<div>
<h1>用户中心</h1>
<NuxtLink to="/user">
用户信息
</NuxtLink>
<NuxtLink to="/user/account">
用户账户
</NuxtLink>
<!-- user目录下的页面的路由出口 -->
<NuxtChild />
</div>
</template>
pages/user/index.vue
代码语言:javascript复制<template>
<h1>用户信息</h1>
</template>
pages/user/account.vue
代码语言:javascript复制<template>
<h1>用户账户</h1>
</template>
二、布局Layout
1、默认布局
如果想拥有统一的页面风格,例如:一致的页头和页尾,可以使用Layout,布局文件的默认的名字是default.vue,放在layouts目录中
注意:新创建的layout重启前端服务器后应用
layouts/default.vue
代码语言:javascript复制<template>
<div>
<Nuxt />
<div>default footer</div>
</div>
</template>
2、自定义布局
也可以自定义Layout:layouts/my.vue
代码语言:javascript复制<template>
<div>
<Nuxt />
<div>my footer</div>
</div>
</template>
在page中使用layout属性指定布局文件:pages/user.vue
代码语言:javascript复制<script>
export default {
layout: 'my',
}
</script>
3、重启服务测试
三、配置文件
1、Meta Tags and SEO
我们可以在nuxt.config.js中配置如下内容,Nuxt会自动生成网站的<head>标签,这也是搜索引擎优化的一个必要手段。
代码语言:javascript复制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' }],
},
}
注意:/favicon.ico 放在 static 目录下
2、样式
step1:创建 assets/css/main.css
代码语言:javascript复制body {
background-color: pink;
}
step2:在nuxt.config.js中配置样式(和head同级别)
代码语言:javascript复制css: [
// CSS file in the project
'~/assets/css/main.css',
],