网站首页 > 技术文章 正文
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
猜你喜欢
- 2024-10-13 「干货」Deno TCP Echo Server 是怎么运行的?
- 2024-10-13 Vue.js的6个最佳表单生成器组件(vue 自定义表单组件)
- 2024-10-13 Github 上 36 个最实用的 Vue 开源库
- 2024-10-13 Vue3 插件开发详解尝鲜版「值得收藏」
- 2024-10-13 基于 Express 应用框架的技术方案选型浅谈
- 2024-10-13 超实用!基于前端vue.js生态开源项目
- 2024-10-13 细品Npm 依赖处理的进化史(npm安装依赖命令)
- 2024-10-13 Vue原来可以这样写开发效率杠杠的
- 2024-10-13 带你了解 vue-next(Vue 3.0)之 炉火纯青「实践」
- 2024-10-13 Webpack Vue瘦身,感受快到飞起的加载速度!
- 最近发表
- 标签列表
-
- cmd/c (64)
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- sqlset (64)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- chromepost (65)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- linux删除一个文件夹 (65)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)