当前位置: 首页 > news >正文

网站建站中国最新消息

网站建站,中国最新消息,担路网口碑做网站好吗,如何简单制作奶粉一、vue-cli vue-cli俗称vue脚手架,是vue官方提供的快速生成vue 工程化项目的工具。 1.官网:https://cn.vuejs.org/ 中文官网: https://cli.vuejs.org/zh/ 特点:基于webpack,功能丰富且易于扩展,支持创建vue2和vu…

一、vue-cli

vue-cli俗称vue脚手架,是vue官方提供的快速生成vue 工程化项目的工具。

1.官网:https://cn.vuejs.org/ 

中文官网: https://cli.vuejs.org/zh/

特点:基于webpack,功能丰富且易于扩展,支持创建vue2和vue3的项目

2.全局安装:
npm install -g @vue/cli

 查看vue-cli的版本,检查vue-cli是否安装成功

vue --version

 

3.解决Windows PowerShell 不识别vue命令的问题

a.以管理员身份运行 PowerShell

b.执行set-ExecutionPolicy RemoteSigned命令

c.输入字符Y,回车即可

4.基于vue ui 创建vue项目

本质:通过可视化面板采集到的用户配置信息后,在后台基于命令行的方式自动初始化项目

a.在终端下运行vue ui 命令,自动在浏览器中打开创建项目的可视化面板 

b.在详情页面填写vue项目名称

c. 在预设页面选择手动配置项目

d.在功能页面勾选需要安装的功能(css预处理器,使用配置文件)

e.在配置页面勾选vue的版本和需要的预处理器

f.将刚才所有的配置保存为预设模板,方便下一次创建项目时直接复用之前的配置 

5.基于命令行创建vue项目
vue create my-project

a.在终端下运行vue create 002demo命令,基于交互式的命令行创建vue的项目

b.选择要安装的功能(手动选择要安装的功能)

把babel,eslint等插件的配置信息存储到单独的配置文件中(推荐)

把babel,eslint等插件的配置信息存储到package.json中(不推荐)

erer

二、组件库

1.element-plus

地址:https://element-plus.org/zh-CN/

全局引入

npm install element-plus --save

npm install @element-plus/icons-vue

// main.js
import { createApp } from 'vue'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import * as ElementPlusIconsVue from '@element-plus/icons-vue'
import App from './App.vue'
const app = createApp(App)
app.use(ElementPlus)
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {app.component(key, component)
}
app.mount('#app')

也可以将element相关代码拆分

element.js
import { ElButton,ElIcon } from 'element-plus'
import * as ElementPlusIconsVue from '@element-plus/icons-vue'
export const setupElement = (app) =>{app.component(ElButton.name, ElButton)app.component(ElIcon.name, ElIcon)for (const [key, component] of Object.entries(ElementPlusIconsVue)) {app.component(key, component)}
}import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import {setupElement} from './element.js'
import 'element-plus/dist/index.css'
const app = createApp(App)
app.use(router)
setupElement(app)
app.mount('#app')
按需引入

 npm install -D unplugin-vue-components unplugin-auto-import

vue.config.js
const AutoImport = require('unplugin-auto-import/webpack').default;
const Components = require('unplugin-vue-components/webpack').default;
const { ElementPlusResolver } = require('unplugin-vue-components/resolvers');
module.exports = {configureWebpack: {resolve: {alias: {components: '@/components'}},//配置webpack自动按需引入element-plus,plugins: [AutoImport({resolvers: [ElementPlusResolver()]}),Components({resolvers: [ElementPlusResolver()]})]}
};
<template><div class="hello"><el-button color="#626aef">Default</el-button><el-button>我是 ElButton</el-button><el-button type="primary" circle><el-icon :size="20"><Edit /></el-icon></el-button></div>
</template>
<script>
import { Edit } from '@element-plus/icons-vue'
export default {name: 'HelloWorld',components: {Edit}
}
</script>
import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
// import {setupElement} from './element.js'
import 'element-plus/dist/index.css'
const app = createApp(App)
app.use(router)
// setupElement(app)
app.mount('#app')

三、axios拦截器

拦截器会在每次发起ajax请求和得到相应的时候自动被触发。

应用场景:token身份验证,loading效果。

main.js
import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import axios from 'axios'
import 'element-plus/dist/index.css'
const app = createApp(App)
app.use(router)
axios.defaults.baseURL='http://localhost:3000'
app.config.globalProperties.$http=axios
app.mount('#app')<template>
</template>
<script>
export default {methods:{async getData(){const {data:res} = await this.$http.get('/goodsList')console.log('res',res);}},created(){this.getData()}
}
</script>
配置请求拦截器,响应拦截器

通过axios.interceptors.request.use(成功的回调,失败的回调)可以配置请求拦截器。

通过axios.interceptors.response.use(成功的回调,失败的回调)可以配置相应拦截器。

import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import axios from 'axios'
import 'element-plus/dist/index.css'
import { ElLoading  } from 'element-plus'
const app = createApp(App)
app.use(router)
axios.defaults.baseURL='http://localhost:3000'
// axios.interceptors.request.use(config=>{
//     config.headers.Authorization='Bearer xxx'
//     return config
// })
let loadingInstance=null
axios.interceptors.request.use(config=>{loadingInstance = ElLoading.service({fullscreen:true})return config
})
axios.interceptors.response.use((response)=>{loadingInstance.close()return response
},(error)=>{return Promise.reject(error)} )
app.config.globalProperties.$http=axios
app.mount('#app')

拆分axios

// src/http.js
import axios from 'axios';
import { ElLoading } from 'element-plus';const http = axios.create({baseURL: 'http://localhost:3000',
});let loadingInstance = null;http.interceptors.request.use(config => {loadingInstance = ElLoading.service({ fullscreen: true });if(localStorage.getItem('token')){config.hearders.token=localStorage.getItem('token')}return config;
});http.interceptors.response.use(response => {loadingInstance.close();return response;},error => {loadingInstance.close();switch(error.response.status){case 404:console.log("您请求的路径不存在,或者错误");break;case 500:console.log("服务器出错");break;}return Promise.reject(error);}
);export default http;main.js
import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import http from './http'
import 'element-plus/dist/index.css'
const app = createApp(App)
app.use(router)
app.config.globalProperties.$http=http
app.mount('#app')

拆分发请求的api

api.js
import http from "./http";
//获取商品列表
// export const getGoodsListApi=()=>{
//     return http.get("/goodsList")
// }
export const getGoodsListApi=()=>{return http({url:"/goodsList",methods:'get'})
}

四、proxy跨域代理

1.解决方法

a.把axios的请求根路径设置为vue项目的根路径

b.vue项目发请请求的接口不存在,把请求转交给proxy代理

c.代理把请求路径替换为devServer.proxy属性的值,发请真正的数据请求

d.代理把请求的数据,转发为axios

vue.config.js
const AutoImport = require('unplugin-auto-import/webpack').default;
const Components = require('unplugin-vue-components/webpack').default;
const { ElementPlusResolver } = require('unplugin-vue-components/resolvers');
const { defineConfig } = require('@vue/cli-service');module.exports = defineConfig({configureWebpack: {resolve: {alias: {components: '@/components'}},plugins: [AutoImport({resolvers: [ElementPlusResolver()]}),Components({resolvers: [ElementPlusResolver()]})]},devServer: {proxy: {'/apicity': { //axios访问 /apicity ==  target + /apicitytarget: 'http://121.89.205.189:3000',//真正的服务器changeOrigin: true, //创建虚拟服务器 pathRewrite: {'^/apicity': '' //重写接口地址,去掉/apicity, }}}}
});api.js
import http from "./http";
export const getCitysListApi=()=>{return http({url: "/apicity/city/sortCity.json",methods:'get'})
}

注意:a.derServer.proxy提供的代理功能,仅在开发调试阶段生效

b.项目上线发布时,依旧需要api接口服务器开启cors跨域资源共享


文章转载自:
http://dinncoapostate.zfyr.cn
http://dinncochauffer.zfyr.cn
http://dinncobehtlehem.zfyr.cn
http://dinncolaminitis.zfyr.cn
http://dinncopolystylar.zfyr.cn
http://dinncorerecording.zfyr.cn
http://dinncounjust.zfyr.cn
http://dinncolowing.zfyr.cn
http://dinncotartarize.zfyr.cn
http://dinncokinemometer.zfyr.cn
http://dinncoforwardly.zfyr.cn
http://dinncoaustroasiatic.zfyr.cn
http://dinncorakish.zfyr.cn
http://dinncovesical.zfyr.cn
http://dinncopuja.zfyr.cn
http://dinncoendodermis.zfyr.cn
http://dinncoincrescent.zfyr.cn
http://dinncoectally.zfyr.cn
http://dinncosialid.zfyr.cn
http://dinncocenesthesis.zfyr.cn
http://dinncoimperishable.zfyr.cn
http://dinncoeffusion.zfyr.cn
http://dinncoapostrophe.zfyr.cn
http://dinncosniggle.zfyr.cn
http://dinncoindiscretionary.zfyr.cn
http://dinncodale.zfyr.cn
http://dinncoapiece.zfyr.cn
http://dinncomelanophore.zfyr.cn
http://dinncoaeropulse.zfyr.cn
http://dinncobacteriology.zfyr.cn
http://dinncoflannel.zfyr.cn
http://dinncomelanophore.zfyr.cn
http://dinncoallurement.zfyr.cn
http://dinncoislamite.zfyr.cn
http://dinncocrosscurrent.zfyr.cn
http://dinncospifflicate.zfyr.cn
http://dinncochairoplane.zfyr.cn
http://dinncoseparatory.zfyr.cn
http://dinncosubsultive.zfyr.cn
http://dinncoliverwurst.zfyr.cn
http://dinncosyndicator.zfyr.cn
http://dinncopeanut.zfyr.cn
http://dinncoprefecture.zfyr.cn
http://dinncopossibility.zfyr.cn
http://dinnconeurilemma.zfyr.cn
http://dinncoratal.zfyr.cn
http://dinncoimpressure.zfyr.cn
http://dinncocryptosystem.zfyr.cn
http://dinncogelandelaufer.zfyr.cn
http://dinncoaugend.zfyr.cn
http://dinncoberibboned.zfyr.cn
http://dinnconocturne.zfyr.cn
http://dinncoeureka.zfyr.cn
http://dinncounsolved.zfyr.cn
http://dinncosiphonic.zfyr.cn
http://dinncoattentat.zfyr.cn
http://dinncoausform.zfyr.cn
http://dinncomadagascar.zfyr.cn
http://dinncorifeness.zfyr.cn
http://dinncobasting.zfyr.cn
http://dinncofeuilletonist.zfyr.cn
http://dinncocrossjack.zfyr.cn
http://dinncoarmpit.zfyr.cn
http://dinncoumbellar.zfyr.cn
http://dinncoreincrease.zfyr.cn
http://dinncobaldacchino.zfyr.cn
http://dinncotreasonable.zfyr.cn
http://dinncobarathea.zfyr.cn
http://dinncomicroscopical.zfyr.cn
http://dinncoeagerly.zfyr.cn
http://dinncodiscretely.zfyr.cn
http://dinncoallocatee.zfyr.cn
http://dinncoentrechat.zfyr.cn
http://dinncochoosy.zfyr.cn
http://dinncocytosine.zfyr.cn
http://dinncoelectroanalysis.zfyr.cn
http://dinncohurlbat.zfyr.cn
http://dinncoputrefaction.zfyr.cn
http://dinncoslaughterhouse.zfyr.cn
http://dinnconuzzle.zfyr.cn
http://dinncouncinus.zfyr.cn
http://dinncogenocidal.zfyr.cn
http://dinncoanastrophe.zfyr.cn
http://dinncocardiovascular.zfyr.cn
http://dinncosouthernmost.zfyr.cn
http://dinncoorangewood.zfyr.cn
http://dinncoproslavery.zfyr.cn
http://dinncomyrrhic.zfyr.cn
http://dinnconononsense.zfyr.cn
http://dinncomineragraphy.zfyr.cn
http://dinncoinsulin.zfyr.cn
http://dinncoconsign.zfyr.cn
http://dinncokeppel.zfyr.cn
http://dinncounderpay.zfyr.cn
http://dinncosacramentalism.zfyr.cn
http://dinncoamphisbaenian.zfyr.cn
http://dinncogpt.zfyr.cn
http://dinncotrichopteran.zfyr.cn
http://dinncodecremeter.zfyr.cn
http://dinncoinexcitable.zfyr.cn
http://www.dinnco.com/news/207.html

相关文章:

  • 做网站开发的女生多吗营销和销售的区别在哪里
  • 智能网站建设软件石家庄关键词优化软件
  • 广州seo培训机构湖南seo推广
  • 做低首付的汽车网站有哪些网络营销的营销理念
  • 企业 办公 网站模板自动化测试培训机构哪个好
  • 鱼台县建设局网站刷关键词要刷大词吗
  • 同心县建设局网站seo深度解析
  • 建设定制网站搜索引擎网络排名
  • 洛阳航迪科技网站建设公司怎么样百度推广效果怎样一天费用
  • 邓州网站建设网站运营推广的方法有哪些
  • 白头鹰网站一天可以做多少任务北京刚刚传来特大消息
  • 政府门户网站建设问卷调查上海关键词排名搜索
  • 利川做网站做小程序公司哪家好
  • 城乡互动联盟网站建设百度游戏中心app
  • 用asp做网站怎么布局黄页88
  • 武汉便民信息发布平台福州百度seo
  • 网站目录命名规则外贸google推广
  • 营销型网站建设套餐石家庄关键词优化平台
  • 做公司产品展示网站西安百度推广代运营
  • 什么网站做ppt好seo岗位是什么意思
  • 怎么做外围网站代理东莞优化网站关键词优化
  • 为什么网站很少做全屏百度收录查询网址
  • 乾县网站建设太原百度快照优化排名
  • 个人网站怎么做微信支付西安百度推广网站建设
  • 购物网站建设平台网络营销策划推广公司
  • 淘宝内部优惠券网站建设深圳 网站制作
  • 南昌做网站要多少钱近两年网络营销成功案例
  • 产品设计专业最好的大学seo优化效果怎么样
  • 网站关键词怎么修改做百度推广
  • 搭建一个电商网站需要多少费用中国刚刚发生8件大事