命令
下载脚手架(全局)
npm install -g @vue/cli
或者
yarn global add @vue/cli
脚手架初始化项目
vue-cli -
构建项目
vue create 文件名
或者
vue ui
打包项目
npm run build
运行项目
npm run serve
安装命令
npm i
等同于
npm install
卸载
npm uninstall
该命令会在项目中更新或者下载新的依赖包之后自动运行,如果你在项目中使用了具有已知安全问题的依赖,就收到官方的警告通知。
npm audit
axios
cnpm install --save axios
进度条
cnpm install --save nprogress
进度条的使用
// start:进度条开始 done:进度条结束 一般放在请求/响应拦截器里
nprogress.start();
nprogress.done();
路由配置
Vue2 路由插件使用 vue-router 3.X版本
npm i vue-router@3
Vue3 路由插件使用 vue-router 4.X版本
npm i vue-router@4
路由参数
import Vue from "vue";
import VueRouter from "vue-router"
Vue.use(VueRouter)
import Home from "@/pages/Home"
import Shop from "@/pages/Shop"
import Search from "@/pages/Search"
export default new VueRouter({
// 路由配置
routes:[
{
path:"/",
redirect:"/home",
},
{
path:"/home",
// redirect:'/',
component:Home,
meta: { show: true }
},
{
path:"/shop",
component:Shop
},
{
// :keyword 为params参数占位 ?为设置该参数 可传可不传
path:"/search/:keyword?",
component:Search,
meta: { show: true },
name:"search",
//路由组件能否传递props参数
// 1.布尔值写法:params
// props:true
// 2.对象写法 额外给路由组件传递一些props参数
// props:{
// a:1,
// b:2
// },
// 3.函数写法(常用) 可以params参数、query参数,通过props传递给路由组件
// 写法1
// props:($route)=>{
// return {keyword:$route.params.keyword,k:$route.query.k.toUpperCase()}
// },
// 写法2
props:($route)=>({keyword:$route.params.keyword,k:$route.query.k})
}
]
})
路由参数传递
export default{
name: "aa",
data(){
return{
keyword: ""
}
},
methods:{
//路由传递参数
goSearch(){
// 1、字符串形式
// this.$router.push("/search/" + this.keyword + "?k=" + this.keyword.toUpperCase());
// 2、模板字符串
// this.$router.push(`/search/${this.keyword}?k=${this.keyword.toUpperCase()}`)
// 3、对象(常用) 对象写法可以是name、path 其中path写法不可以与params参数一起使用
this.$router.push({
name : "search",
params : {keyword:this.keyword},// "" || undefined 解决传递空串url问题
query : {k:this.keyword.toUpperCase()}
});
}
}
}
点击事件
@click触发
<button @click="goSearch">搜索</button>
Vuex
状态管理
cnpm install --save vuex
懒加载
Vue懒加载(LazyLoad)一直是前端的优化方案之一。简单来说就是延迟加载或按需加载,即在需要的时候的时候进行加载。
它的核心思想是:当用户想看页面某个区域时,再加载该区域的数据。这在一定程度上减轻了服务器端的压力,也加快了页面的呈现速度。
懒加载多用于图片,因为它属于流量的大头。最典型的懒加载实现方案是先将需要懒加载的图片的src隐藏掉,这样图片就不会下载,然后在图片需要呈现给用户时再加上src属性。
//同步加载
import XXX from "./XXX"
//异步加载(懒加载)
const XXX = () => import("./XXX")
组件
对象空值过滤
const obj = {
a: 1,
b: null,
c: undefined,
d: '',
e: 0,
f: false
};
const filteredObj = Object.fromEntries(
Object.entries(obj).filter(([key, value]) => value != null && value !== '')
);
console.log(filteredObj); // {a: 1, e: 0, f: false}
在上面的代码中,我们先使用 Object.entries() 方法将对象转换成一个由键值对组成的数组,然后使用 Array.prototype.filter() 方法过滤掉没有值的属性。
最后,使用 Object.fromEntries() 方法将过滤后的数组转换成一个新的对象。
错误解决
- 定义了但未使用的警告
如 : XX component has been registered but not used
解决办法:在package.json文件中找到eslintConfig -> rule 添加以下规则
"vue/no-unused-components": "off"
正则匹配空值
const regExp = /^\s*$/;
function isNullOrWhitespace(str: string | null | undefined): boolean {
return str == null || regExp.test(str);
}
websocket 长链接
npm install websocket
安装后项目中各项操作:
// 链接WS
const ws = new w3cwebsocket('ws://43.143.82.69:9502')
ws.onopen = () => {
console.log('连接')
}
ws.onmessage = (e) => {
console.log('收到:',e.data)
}
ws.onclose = () => {
console.log('关闭连接')
}
ws.onerror = (e) => {
console.log('错误:',e)
}
End