标签:param npm 美剧 下载 rom 引入 首页 device params
学习目标
Nuxt.js 是一个基于 Vue.js 的通用应用框架。
npm i create-nuxt-app -g
create-nuxt-app my-nuxt-demo
cd my-nuxt-demo
npm run dev
└─my-nuxt-demo
├─.nuxt // Nuxt自动生成,临时的用于编辑的文件,build
├─assets // 用于组织未编译的静态资源如LESS、SASS或JavaScript,对于不需要通过 Webpack 处理的静态资源文件,可以放置在 static 目录中
├─components // 用于自己编写的Vue组件,比如日历组件、分页组件
├─layouts // 布局目录,用于组织应用的布局组件,不可更改?
├─middleware // 用于存放中间件
├─node_modules
├─pages // 用于组织应用的路由及视图,Nuxt.js根据该目录结构自动生成对应的路由配置,文件名不可更改?
├─plugins // 用于组织那些需要在 根vue.js应用 实例化之前需要运行的 Javascript 插件。
├─static // 用于存放应用的静态文件,此类文件不会被 Nuxt.js 调用 Webpack 进行构建编译处理。 服务器启动的时候,该目录下的文件会映射至应用的根路径 / 下。文件夹名不可更改。?
└─store // 用于组织应用的Vuex 状态管理。文件夹名不可更改。?
├─.editorconfig // 开发工具格式配置
├─.eslintrc.js // ESLint的配置文件,用于检查代码格式
├─.gitignore // 配置git忽略文件
├─nuxt.config.js // 用于组织Nuxt.js 应用的个性化配置,以便覆盖默认配置。文件名不可更改。?
├─package-lock.json // npm自动生成,用于帮助package的统一设置的,yarn也有相同的操作
├─package.json // npm 包管理配置文件
├─README.md
Nuxt.js 依据 pages
目录结构自动生成 vue-router 模块的路由配置。
假设 pages
的目录结构如下
└─pages
├─index.vue
└─user
├─index.vue
├─one.vue
那么,Nuxt.js 自动生成的路由配置如下:
router: {
routes: [
{
name: ‘index‘,
path: ‘/‘,
component: ‘pages/index.vue‘
},
{
name: ‘user‘,
path: ‘/user‘,
component: ‘pages/user/index.vue‘
},
{
name: ‘user-one‘,
path: ‘/user/one‘,
component: ‘pages/user/one.vue‘
}
]
}
<nuxt-link to="/users"></nuxt-link>
Nuxt.js 可以让你在动态路由对应的页面组件中配置一个validate
方法用于校验动态路由参数的有效性。该函数有一个布尔类型的返回值,如果返回true则表示校验通过,如果返回false则表示校验未通过。
validate(data) {
cosole.log(data)
return true
}
layouts文件夹下面新建error.vue,error是关键字
在components文件夹下面新建一个Header.vue组件
引入组件,注意路径的~符号,表示根目录
layout中也能使用组件
nuxt.config.js中设置设置全局样式文件路径
下载npm i element-ui -S
在plugins文件夹下面,创建ElementUI.js文件
import Vue from ‘vue‘
import ElementUI from ‘element-ui‘
Vue.use(ElementUI)
在nuxt.config.js中添加配置
css: [
‘element-ui/lib/theme-chalk/index.css‘
],
plugins: [
{src: ‘~/plugins/ElementUI‘, ssr: true }
],
build: {
vendor: [‘element-ui‘]
}
Nuxt.js 扩展了 Vue.js,增加了一个叫 asyncData
的方法,使得我们可以在设置组件的数据之前能异步获取或处理数据。asyncData
方法会在组件(限于页面组件)每次加载之前被调用。它可以在服务端或路由更新之前被调用。所以需要注意这个函数中不能使用this
注意:常规写法如果在created钩子中写异步,是在客户端渲染的而不是在服务端
使用方法:asyncData(context, callback) {callback(null, data)}
context.route.params.xxx
获取参数
callback(new Error(), data)
渲染出错的页面
注意:这个方法在服务器端执行和在客户端执行的区别
安装npm install --save axios
使用
import axios from ‘axios‘
asyncData(context, callback) {
axios.get(‘http://localhost:3301/in_theaters‘)
.then(res => {
console.log(res);
callback(null, {list: res.data})
})
}
为防止重复打包,在nuxt.config.js中配置
module.exports = {
build: {
vendor: [‘axios‘]
}
}
接口i
获取电影列表:http://localhost:3301/in_theaters
(in_theaters可以替换为coming_soon及top250)
获取电影详情:http://localhost:3301/in_theaters/1?_embed=details
在nuxt.config.js配置文件中修改
head: {
title: pkg.name,
meta: [
{ charset: ‘utf-8‘ },
{ name: ‘viewport‘, content: ‘width=device-width, initial-scale=1‘ },
{ hid: ‘description‘, name: ‘description‘, content: pkg.description }
],
link: [
{ rel: ‘icon‘, type: ‘image/x-icon‘, href: ‘/favicon.ico‘ }
]
},
head(){
return{
title:‘豆瓣电影‘,
meta:[{
‘name‘:‘keywords‘,
‘content‘: ‘电影、经典电影、热映、电视剧、美剧、影评、电影院、电影票、排行、推荐‘
}]
}
}
标签:param npm 美剧 下载 rom 引入 首页 device params
原文地址:https://www.cnblogs.com/wangyuwei5955616/p/13226892.html