当前位置:首页 » 《休闲阅读》 » 正文

Vue3详细教程

18 人参与  2024年03月31日 16:45  分类 : 《休闲阅读》  评论

点击全文阅读


一.Vue3的介绍

相信大家都已经学习过Vue2了,对Vue有了一定的了解。那么今天我们就一起来学习有关Vue3的知识点。那为什么要学习Vue3呢,主要是他有以下的特点。
(1)新增组合式api
(2)更加接近原生
(3)更加解耦(react启发)

二.Vue3的安装

全局安装脚手架(如果安装过脚手架请忽略这步)
npm i @vue/cli -g 创建一个vue3 的项目
vue create 项目名称
在这里插入图片描述选择手动
在这里插入图片描述选择babel ES6转ES5 Router路由 Vuex css预处理器 Linter语法格式检查
在这里插入图片描述选择版本3x(这个一定要注意,与vue2的区别)
在这里插入图片描述选择scss
在这里插入图片描述其他按照如下选择,基本都是默认在这里插入图片描述进入项目,运行到服务器,复制网址可以出现,就说明成功
安装并创建了Vue3的项目在这里插入图片描述

三.Vue3的使用

一. 推荐插件

在练习项目之前建议大家安装Vscode的两个插件,方便Vue3的学习。分别是
(1)Vue Volar extension Pack
在这里插入图片描述
(2)Vetur
在这里插入图片描述

二.Vue2与VUe3的异同

1. Vue2与Vue3基本相同

01 生命周期基本一致

02 与vue2的模板语法基本一致

03 与选项基本一致 data methods,computed watch 一致

2. Vue2与Vue3的不同点(重点)

01 启动方式
(1)vue3的启动方式

import {createApp} from 'vue'createApp(App).use(router).use(store).mount("#app")

(2)vue2的启动方式

import Vue from 'vue'new Vue({   store,   router,  render:h=>h(App)}).$mount("#app")

02 全局方法挂载
(1)vue2的全局方法挂载

app.config.globalProperties.$say = function(msg){alert(msg)}

(2)vue3的全局方法挂载

Vue.prototype.$say = function(msg){alert(msg)}

03 根节点
(1)vue3 可以有多个根节点
(2)vue2 只能有一个根节点(容易出错的点)
04 生命周期,卸载
(1)Vue3

beforeUnmount()组件将要卸载
unmounted组件已经卸载

(2)Vue2

beforeDestroy()销毁前
destroyed()销毁后

下面是生命周期图示官方图,可供参考
在这里插入图片描述

三. 组合式 API:setup()

setup() 钩子是在组件中使用组合式 API 的入口,通常只在以下情况下使用:

需要在非单文件组件中使用组合式 API 时。需要在基于选项式 API 的组件中集成基于组合式 API 的代码时。
其他情况下,都应优先使用 < script setup> 语法。

(1)ref

创建值类型响应式数据方法在seup内部需要 .value 来访问设置值

(2) reactive

创建引用类型响应式数据方法

(3)defineProps

定义 组传的传参props

(4)defineEmits

定义组件发送的事件

(5)watch

监听一个数据的变化

(6)watchEffect

监听多个数据

(7)生命周期

setup中的生命周期,没有beforeCreate与createdsetup的生命周期需要加on前缀

四.Vue3的简单练习案例

1.案例1

<template>  <div>      <h1>你好Vue3</h1>      <!-- 02 与2的模板语法基本一致 -->      <button @click="num++">{{num}}</button><br/>      <input type="text" v-model.number="num" />      <p>{{rmsg}}</p>      <button @click="$say('你好老曾')">  全局</button>  </div>  <div>      <h1>第二个根节点</h1>  </div></template><script>export default {  // 01 生命周期基本一致  created(){    console.log("你好vue3,from clog")  },  data(){    return {      num:1,      msg:"你好前端开发"    }  },  // 03 与选项基本一致 data methods,computed watch 一致  computed:{    "rmsg":function(){      return  this.msg.split('').reverse().join("");    }  }}</script>
案例2
<template>  <div>    <h1>setup</h1>    <button @click="num++">{{num}}</button> <br>    <stepper-com :value="num" @input="num=$event" ref="stepper"></stepper-com>  </div></template><script setup>// 使用setup 可以简写(不用导出,组件不用注册了)  import StepperCom from '@/components/StepperCom.vue'  import {ref,onMounted} from 'vue';  const num = ref(5);    const stepper = ref();  onMounted(() => {    console.log("组件已经挂载完毕")    // 组件挂载完毕引用steper组件    // stepper.value就是对stepper-com 组件的引用    console.log(stepper.value.count)  }) </script>
案例3
<template>  <div>    <h1>生命周期</h1>    <button @click="num++">{{num}}</button>    <button @click="setNum(num+5)">加5</button>    <p v-for="item in list" :key="item">{{item}}</p>    <input type="text" v-model="temp" @keyup.enter="addList()">  </div></template><script>  // ref 导入一个创建响应式 值类型数据的方法  // reactive 响应式 引用类型方法   import {ref,reactive} from 'vue'  export default {    setup(){      // 创造一个响应式对象 num 默认值是5      const num = ref(5);           // 定义更新num的方法      function setNum(n){        // 在setup 中num的值访问与赋值要加value 在template不需要        num.value = n;      }       // 返回num      // 定义一个响应式列表数据      var list = reactive(["Vue","react","Angular","小程序"])      // 定义temp 临时数据      var temp = ref("");      // 定义添加list 的方法      function addList(){        // 注意值类型访问要加value        list.push(temp.value);        temp.value = "";      }      // 返回 定义的方法与数据      return {num,setNum,list,temp,addList};    },    beforeUnmount(){      console.log("组件将要卸载")    },    unmounted(){      console.log("组件已经卸载")    }  }</script>

以上就是全部内容啦,敬请期待下一篇博客在这里插入图片描述


点击全文阅读


本文链接:http://m.zhangshiyu.com/post/88566.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 祖母寿宴,侯府冒牌嫡女被打脸了(沈屿安秦秀婉)阅读 -
  • 《雕花锦年,昭都旧梦》(裴辞鹤昭都)完结版小说全文免费阅读_最新热门小说《雕花锦年,昭都旧梦》(裴辞鹤昭都) -
  • 郊区41号(许洛竹王云云)完整版免费阅读_最新全本小说郊区41号(许洛竹王云云) -
  • 负我情深几许(白诗茵陆司宴)完结版小说阅读_最热门小说排行榜负我情深几许白诗茵陆司宴 -
  • 九胞胎孕妇赖上我萱萱蓉蓉免费阅读全文_免费小说在线看九胞胎孕妇赖上我萱萱蓉蓉 -
  • 为保白月光,侯爷拿我抵了债(谢景安花田)小说完结版_完结版小说全文免费阅读为保白月光,侯爷拿我抵了债谢景安花田 -
  • 陆望程映川上官硕《我的阿爹是带攻略系统的替身》最新章节阅读_(我的阿爹是带攻略系统的替身)全章节免费在线阅读陆望程映川上官硕
  • 郑雅琴魏旭明免费阅读_郑雅琴魏旭明小说全文阅读笔趣阁
  • 头条热门小说《乔书意贺宴临(乔书意贺宴临)》乔书意贺宴临(全集完整小说大结局)全文阅读笔趣阁
  • 完结好看小说跨年夜,老婆初恋送儿子故意出车祸_沈月柔林瀚枫完结的小说免费阅读推荐
  • 热推《郑雅琴魏旭明》郑雅琴魏旭明~小说全文阅读~完本【已完结】笔趣阁
  • 《你的遗憾与我无关》宋怀川冯洛洛无弹窗小说免费阅读_免费小说大全《你的遗憾与我无关》宋怀川冯洛洛 -

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1