vue 的个人学习小笔记
一、vite2.0+vue3.0+ts 创建、配置
1、Vite 创建 vue3 项目:
1.1、npm 常用命令
1、npm 查看版本号
npm view 包 version —— 查看最新版本号
npm view 包 version ——查看所有版本号2、npm 下载指定版本号
npm install --save-dev 包@版本号
npm install 包@版本号

1.2、vite1.0:
yarn create vite-app <project name>
1.3、vite2.0:
(需要 node 版本>12.0.0)创建项目:vscode 要安装 volar 插件(禁用 vue2.0 的插件 vetur,会冲突)
1、常用命令:
npm init vite@latest
npm init @vitejs/app 项目名
yarn create @vitejs/app 项目名
2、快速新建:
npm init @vitejs/app 项目名 --template vue-ts
1、
2、
3、
4、yarn 安装依赖,启动服务
问题:
1、webpack编译慢(修改一点东西都会把全部文件重新编译)
2、如果想用vue2,则使用vite-plugin-vue2插件
2、基于ts的项目基础配置
2.1、配置 ts 识别vue文件,在项目根目录添加shim.d.ts文件:
declare module "*.vue" {
import { Component } from "vue";
const component: Component;
export default component;
}
文件中即可使用ts语法糖:<script setup lang="ts"></script>
2.2、配置router路由
1、yarn add vue-router@next
2、在项目src目录下面新建router目录,然后添加index.ts文件
️:一定要使用解构导出方法,按照官方文档的会报错
3、将router引入到main.ts中,修改main.ts文件
2.3、配置状态管理:vuex / pinia
1、yarn add vuex@next
2、在项目src目录下面新建store目录,并添加index.ts文件
插件:vuex-persistedstate
2.4、配置axios
1、yarn add axios / npm install --save axios vue-axios
2、在项目src目录下面新建utils/http目录,并添加axios.ts文件
2.5、配置less
1、yarn add less less-loader --dev(建议安装在本地依赖,没必要装全局环境)
2、文件中使用:<style lang="less" scoped></style>
2.6、配置path模块【import {resolve} from "path"】
1、安装依赖:yarn add @types/node --dev
2、vite.config.ts文件中配置:
resolve: {
alias: {
"@": resolve(__dirname, "src"),
},
},
二、vue常用知识点
1、v-if 和 v-for 的优先级
2.x :v-for > v-if
3.x :v-for < v-if
2、v-for 中的 Ref 数组
2.x :自动把ref填充内容
3.x :需要通过 :ref="方法名" 手动添加
3、$children
2.x :访问当前实例的子组件
3.x :$children 被移除,通过ref来访问子组件
4、setup组合API
数据响应区别:
2.x :Object.defineProperty
1、不能监听数组的变化
2、必须遍历对象的每一个属性
3.x :Proxy——不需要遍历
(相当于2.x中的data)
1、 ref——简单类型(需要data.value操作数据)
2、reactive——复杂类型
setup语法糖插件:unplugin-auto-import
yarn add unplugin-auto-import -D
文档地址
无需引入api(eg:import {ref……} from 'vue')
5、toRefs是vue3.x的数据解构,用es6解构会消除proxy的数据响应
6、watch:{}
vue2.x
方法1——改变了才会监听: 监听的值( newVal , oldVal ){}
方法2——配置监听:
监听的值:{
handler( newVal , oldVal ){},
immediate:true, // 是否获取初始化的值
deep:true, // 深度监听——对象这类复杂类型的值
}
vue3.x —— 立即监听也可以用watchEffect(相当于: immediate:true)
1、单个监听:
watch(监听的值, (newVal, oldVal) => { console.log(newVal, oldVal); }, { immediate:true,} )
2、多个监听:
watch([val1 , val2,...], (newVal, oldVal) => { console.log(newVal, oldVal); }, });
3、监听对象的key值:
watch(()=>obj.key, (newVal, oldVal) => { console.log(newVal, oldVal); })
7、computed
8、父子组件
vue2.x
父传子:props
子传父:$emit
兄弟:eventBus……
vue3.x
父传子:defineProps
子传父:defineEmits
兄弟:mitt(emit、on)
9、插槽(父template、子slot)
1、匿名插槽:会把slot内容都无脑展示出来
2、具名插槽:通过name来进行判断哪些内容展示,哪些不展示
3、作用域插槽:可以父子之间传递数据
4、动态插槽:template可以用变量控制name的具名插槽
10、teleport传送——可以自己选择传送到某个标签下【不容易受到定位的影响】
11、动态组件:
<component :is="变量"></component>
markRow(组件名)——可以绕过proxy
12、异步组件(提升性能)
1、懒加载:组件按需引入(看到组件才加载)
官方:defineAsyncComponent
插件:vueuse
2、axios返回的数据:
<Suspense>
<template #default>异步加载的组件</template>
<template #fallback>加载中</template>
</Suspense>
3、打包会被分包处理:异步组件有单独的js文件,是从主体js文件分包出来的
13、Mixin:混入——复用功能
14、Provide / Inject ——依赖注入——可以忽略父子/父孙的多层级来传递数据
Provide(提供)—— provide('名',data)
Inject(接收)——const num=inject('名')
vue 的个人学习小笔记的更多相关文章
- Vue 5小时学习小教程
Vue Vue Vue 起步 指令 v-bind v-if v-for v-on v-model v-bind和v-on缩写 搭建Vue开发环境 vue项目结构 Vue开始 数据绑定, 绑定属性 循环 ...
- # ML学习小笔记—Gradien Descent
关于本课程的相关资料http://speech.ee.ntu.edu.tw/~tlkagk/courses_ML17.html 根据前面所为,当我们得到Loss方程的时候,我们希望求得最优的Loss方 ...
- English - 英语学习小笔记
1.It is...to do sth:做某事是.... 解析:It 是形式主语,后面一半接形容词做表语,to do sth是不定式短语作真正主语. 2.make do和make doing是两种表达 ...
- WEB学习小笔记
环境基于WIN10.IDEA最新版.JDK1.8.TOMCAT9 下面说的有错的地方希望指出,谢谢. STRUT2 1.在maven下的时候系统会系统创建一个叫做log4j的配置文件,但是到了这个版本 ...
- # ML学习小笔记—Classification
关于本课程的相关资料http://speech.ee.ntu.edu.tw/~tlkagk/courses_ML17.html 通过模型可以分类输入,此时根据分类结果的正确与否会有一个Loss函数.找 ...
- SQL 学习小笔记
1.FOUND_ROWS() 题目: ,; 在上边sql中使用什么选项可以使 SELECT FOUND_ROWS()忽略LIMIT子句,返回总数? *答案* : SQL_CALC_FOUND_ROWS ...
- java学习小笔记(三.socket通信)【转】
三,socket通信1.http://blog.csdn.net/kongxx/article/details/7288896这个人写的关于socket通信不错,循序渐进式的讲解,用代码示例说明,运用 ...
- # ML学习小笔记—Where does the error come from?
关于本课程的相关资料http://speech.ee.ntu.edu.tw/~tlkagk/courses_ML17.html 错误来自哪里? error due to "bias" ...
- # ML学习小笔记—Linear Regression
Regression Output a scalar Model:a set of function 以Linear model为例 y = b+w * $x_cp$ parameters:b,W f ...
随机推荐
- 关于mui中一个页面有有多个页签进行切换的下拉刷新加搜索问题
此图是最近做的项目中的一页,用的是mui结合vue,用了mui后,觉得是真心难用啊,先不说其他的,就光这个下拉刷新就让人奔溃了,问题层出不穷,不过最后经过努力还是摆平了哈. 1.每次切换到新的标签,都 ...
- PAT B1066图像过滤
输入样例: 3 5 100 150 0 3 189 254 101 119 150 233 151 99 100 88 123 149 0 255 输出样例: 003 189 254 000 00 ...
- JavaScript 中 empty、remove 和 detach的区别
内容 empty.remove 和 detach的区别 jQuery 操作 DOM 之删除节点 方法名 元素所绑定的事件及数据是否也被移除 作用 $(selector).empty() 是 从被选元素 ...
- response.setHeader("Cache-Control","no-cache");的作用
1. response.setHeader("Cache-Control","no-cache"); This is used to prevent the ...
- 【简单dfs】Bubble Cup 14 - Finals Online Mirror (Unrated, ICPC Rules, Teams Preferred, Div. 2), problem: (J) Robot Factory,
传送门 Problem - 1600J - Codeforces 题目 题意 给定n行m列, 求每个连通块由多少格子组成,并将格子数从大到小排序输出 对于每个格子都有一个数(0~15),将其转化 ...
- 巧用 JuiceFS Sync 命令跨云迁移和同步数据
近年来,云计算已成为主流,企业从自身利益出发,或是不愿意被单一云服务商锁定,或是业务和数据冗余,或是出于成本优化考虑,会尝试将部分或者全部业务从线下机房迁移到云或者从一个云平台迁移到另一个云平台,业务 ...
- Java语言学习day22--7月28日
###12多态概述 * A: 多态概述 多态是继封装.继承之后,面向对象的第三大特性. 现实事物经常会体现出多种形态,如学生,学生是人的一种,则一个具体的同学张三既是学生也是人,即出现两种形态. Ja ...
- 『现学现忘』Git基础 — 7、设置Git Bash终端默认路径
目录 1.Git Bash默认路径 2.如何查看Git Bash终端默认路径 3.如何修改Git Bash终端的默认路径 4.拓展:指定目录进入Git Bash终端 5.注意事项 如果您不熟悉Git命 ...
- 2021.11.05 eleveni的水省选题的记录
2021.11.05 eleveni的水省选题的记录 因为eleveni比较菜,但是eleveni不想写绿题(总不能说是被绿题虐得不想写),eleveni决定继续水noip原题. --实际上菜菜的el ...
- 聊聊buffer和cache的区别以及是什么?
buffer 众所周知,想把数据写入磁盘,肯定要先把数据文件读到内存中,当修改完这个文件时,不会立即写入磁盘,为了减少磁盘IO,提高性能,所有会留存一段时间再写入磁盘,这就是buffer cache ...




