nuxt基本使用

nuxt基本使用

首页休闲益智画线射击更新时间:2024-07-25

nuxt的基本组件安装

#前端 1 #nuxt 1

安装sass

npm install node-sass sass-loader –save-dev

安装之后需要配置nuxt.config.js

/**

* 新加导入scss

*/

styleResources: {

scss: '@/assets/style/global.scss'

},

/*

** Nuxt.js modules

*/

modules: [

// Doc: https://axios.nuxtjs.org/usage

'@nuxtjs/axios',

'@gauseen/nuxt-proxy',

'@nuxtjs/style-resources'//需要npm安装 npm i @nuxtjs/style-resources --save-dev

],

使用:@import ‘@/assets/style/global.scss’;

找到进行引入

使用axios这个方法不能使用,见nuxt使用感悟-unxt配置这个文件

需要安装axios,

npm i axios –save-dev

使用axios:- > 参考:《vue的axios封装好的》这个文件,点击搜索即可需要将baseURL的值修改成跨域之后的值, -

const instance = axios.create({

baseURL: '/api',

timeout: 1000,

headers: config.headers || ''

})

解决跨域问题

在nuxt.config.js中找到对应的建进行修改

modules: [

// Doc: https://axios.nuxtjs.org/usage

'@nuxtjs/axios',

'@gauseen/nuxt-proxy',

],

/*

** Axios module configuration

** See https://axios.nuxtjs.org/options

*/

axios: {

// prefix: '/api/',

//是否允许跨域

proxy: true,

// 最多重发三次

retry: { retries: 3 },

//开发模式下开启debug

debug: process.env._ENV == "production" ? false : true,

//设置不同环境的请求地址

baseURL:

process.env._ENV == "production"

? "http://localhost:3000/api"

: "http://localhost:3000/api",

//是否是可信任

withCredentials: true

},

// 代理服务器 => 本身没有需要自己添加

proxyTable: {

"/api": {

target: "https://www.baidu.com", // 线上地址

// target: "http://192.168.1.106:7000", // 本地环境

pathRewrite: {"^/api" : ""}

}

},

路由问题

多个路由传参使用_.vue

pages/

--| login/

-----| _.vue

-----| _log

-------|_.vue

--| index.vue

可以在:to=”login/1/2/3”,如果有子元素的话 :to=”login/1/log/1” 传输多个参数文件夹_这个符号可以动态传参

假设pages的目录结构如下

pages/

--| user/

-----| index.vue

-----| one.vue

--| index.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.js里面定义带参数的动态路由,需要创建对应的以下划线作为前缀的Vue文件或目录。

以下目录结构

pages/

--| _slug/

-----| comments.vue

-----| index.vue

--| users/

-----| _id.vue

--| index.vue

Nuxt.js生成对应的路由配置表为

router: {

routes: [

{

name: 'index',

path: '/',

component: 'pages/index.vue'

},

{

name: 'users-id',

path: '/users/:id?',

component: 'pages/users/_id.vue'

},

{

name: 'slug',

path: '/:slug',

component: 'pages/_slug/index.vue'

},

{

name: 'slug-comments',

path: '/:slug/comments',

component: 'pages/_slug/comments.vue'

}

]

}

你会发现名称为users-id的路由路径带有:id?参数,表示该路由是可选的。原理跟vue动态路由是一致的。

使用跳转的时候都是用nuxt-link或者this.$router.push({path:’’}),这样的话可以使用vuex

1

<nuxt-link :to="'/users/' id?name='四叶草'">首页</nuxt-link>

vuex使用

模块式导出 可以使用…MapXXX导入直接使用,state上的值最好不要直接修改

export const state = () => ({

counter: 0

})

export const mutations = {

increment (state,lod) {

state.counter = lod

}

}

使用:

add(){

this.$store.commit('increment', { name: '四叶草' })

console.log(this.$store.state.counter)

}

用法

和vue没有什么区别 安装脚手架的时候可以直接安装element,可直接使用

获取win

if (process.browser) {

//逻辑

}

打包整理服务器端上线

首先npm run dev 会生成一个dist和.nuxt文件,用到的是nuxt,nuxt.config.js,static,package.json四个文件

之后本地服务器端运行 npm start

富文本安装和图片裁切 - 最好安装element

安装富文本quill 裁切图片:vue-cropper

npm install -d vue-quill-editor quill vue-cropper

在插件目录下全局引入 - 新建js文件,可以分开,可以合在一起

例子:

import Vue from 'vue'

import VueQuillEditor from 'vue-quill-editor'

Vue.use(VueQuillEditor)

全局引用:nuxt.config.js配置

plugins: [

'@/plugins/element-ui',

'@/plugins/bootstrap-vue',

{ src: '@/plugins/map', ssr: false },

{ src: '@/plugins/vue-quill-editor', ssr: false },

{ src: '@/plugins/vue-cropper', ssr: false }

],

具体使用富文本 - nuxt使用富文本图片裁切以及element

图片裁切 - nuxt单个裁切图片和多个裁切

百度地图的使用

安装vue-baidu-map

npm i vue-baidu-map -D

在plugins新建map.js:

import BaiduMap from 'vue-baidu-map'

import Vue from 'vue'

Vue.use(BaiduMap, {

ak: '申请的百度地图密匙'

})

直接去 - Nuxt.js使用百度地图vue-baidu-map

查看全文
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved