vue3工程创建

kyming / 2023-08-06 / 原文

一.两种创建方式(vue-cli与vite)

1.vue-cli创建(构建工具是webpack)

打开cmd 运行命令  vue -V   检查vue-cli版本要在4.5以上。

cd desktop  进入桌面 创建一个文件夹  vue create vue3lx          此时创建成功。y

2.运用vite创建(新一代前端构建工具)

对比webpack有如下的优势

1.开发环境中无需打包操作,可快速冷启动。(注意这里说的是开发环境的打包,就是不像之前的webpack需要npm run serve)

2.轻量快速的热加载。(虽然webpack也有这个功能,但是这个更加轻量快速)

3.按需编译,不用等像之前的webpack一样先全部打包,而是需要啥加载啥。

第一步

还是进入desktop  创建文件   npm init vite-app vue3_vite   

此时会跳出这个

 以前的webpack 是会创建之后自动给你下载依赖,这里需要自己进入并下载依赖。

cd vue3_vite 进入文件

然后npm install   去下载依赖     之后就可以通过npm  run dev   打开就行了。

二.这里我们将讨论用vue-cli创建的vue3项目。

这里先打开vue3用cli创建的文件,并分析入口文件

 然后根据入口文件执行顺序接下来分析,app组件

app组件主要改变时,模板中可以没有根标签,而vue2必须得有。其他没啥变化。

 

2.接下来可以去安装一个vue3的浏览器插件也就是vue3的开发者工具。

3.学习内容第一步  关注setup函数

setup是所有组合式api表演的舞台,也就是说数据和方法等都要在setup里面配置,setup函数里面不用像vue2一样要用this,因为都在setup里面的同一个作用域中。

setup有两种返回值

1)返回一个对象,则对象中的方法与属性在模板中都可以用到。

2)若返回一个渲染函数,则可以自定义渲染内容。

vue3与vue2最好不要混用。

4.学习如何操作响应式数据    不同于vue2,vue3要通过引入ref函数来实现包裹数据使数据能够成为引用对象。import {ref}  from "vue"

ref作用:定义了一个响应式的数据。

值得注意的是:定义一个响应式数据是这样子定义的,let name = ref("刘浩")        let age = ref(18)        reference引用;参考

修改的话得 name.value = '李四'   age.value = 18

ref接受的数据可以是基本数据类型也可以是对象数据类型

但是基本数据类型的响应式还是采用了Object.defineProperty()的get与set完成的,对象数据类型是采用vue3的新函数reactive()实现,它是由es6中的proxy封装的。

5.reactive()函数,作用:定义了一个对象类型的响应式数据,(基本数据类型不要用它定义)它是基于es6的proxy,通过代理对象操作源对象内部数据进行操作。

6.分析一下vue2的问题以及响应式:

实现原理:vue2对象类型是通过Objiect.defineproperty()对属性的读取与修改进行拦截(数据劫持),数组类型:通过重写更新数组的一些方法来实现拦截(对数组的变更方法进行了包裹)

存在的问题:1)新增属性与删除属性,不具有响应式。2)直接通过下表去修改数组不具备响应式。

解决方案:通过this.$set(增加到哪,属性名,属性值)或者Vue.set(增加到哪,属性名,属性值)     数组的话也可以用前两种,当然也可以调用数组的一些方法来修改。