• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > Vue3.0 新特性以及使用总结

Vue3.0 新特性以及使用总结

作者:站长图库 字体:[增加 减小] 来源:互联网

站长图库向大家介绍了Vue3.0新特性,Vue3.0使用总结等相关知识,希望对您有所帮助

本篇文章给大家分享vue3.0的新特性以及使用总结,起哄包括一些新变化,以及哪些以前的语法不能用了,希望对大家有帮助。

Vue3.0 新特性以及使用总结


1、Vue3带来的新变化

性能提升(零成本:从vue2切到vue3就享受到)

首次渲染更快,diff算法更快,内存占用更少,打包体积更小,....

更好的Typescript支持(在vue下写TS更方便了)

提供新的写代码的方式:Composition API


2、这些Vue2.0的语法不能用了

vue3.0对于2.0版本的大部分语法都是可以兼容的(之前是怎么写的,现在也正常写),但是也有一些破坏性的语法更新,这个要格外注意:


1、移除了vue实例上的$on方法 (eventBusVue.prototype.$eventBus=new Vue(); this.$on('事件名', 回调)现有实现模式不再支持,可以使用三方插件替代)。

下边是vue2中eventBus的用法:

Vue.prototype.$eventBus = new Vue()组件1this.$on('事件名', 回调)组件2this.$emit('事件名')

2、移除过滤器选项 。下边是vue2中过滤器的用法:

{{ msg | format}}插值表达式里, 不能再使用过滤器filter, 可以使用methods替代{{format(msg)}}

3、移除 .sync语法(v-bind时不能使用.sync修饰符了,现在它v-model语法合并了)。下面是vue2中.sync的用法

<el-dialog :visibel.sync="showDialog"/>

 

3、vue2和3的项目区别

主要看三个位置:

package.json

main.js

app.vue

package.json

首先我们可以看一下package.json文件,在dependencies配置项中显示,我们当前使用的版本为3

"dependencies": {    "core-js": "^3.6.5",    "vue": "^3.2.25"  // 版本号}


main.js

然后打开main.js 入口文件,发现Vue的实例化发生了一些变化,由先前的new关键词实例化,转变为createApp方法的调用形式 。

vue2.x中的写法:

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

vue3.x的写法:

import { createApp } from 'vue'import App from './App.vue' // 根组件createApp(App).mount('#app')


app.vue

打开app.vue发现:vue3.0的单文件组件中不再强制要求必须有唯一根元素  

<template>  <img alt="Vue logo" src="./assets/logo.png">  <HelloWorld msg="Welcome to Your Vue.js App"/></template>


4、组合式API和选项式API

组合式api(Composition API)是vue3对我们开发者来说变化非常大的更新。

Vue2 选项式API,options API (如图) ,  Vue3 组合式API, composition API (右图):


Vue3.0 新特性以及使用总结


Vue2 选项式API,options API:

优点:

理解容易,好上手。因为各个选项(配置项)都有固定的书写位置(比如数据就写到data选项中,操作方法就写到methods中,等等)

缺点:

应用大了之后,相信大家都遇到过来回上下找代码的困境-----横跳。


Vue3 组合式API, composition API :

特点:

特定功能相关的所有东西都放到一起维护,比如功能A相关的响应式数据,操作数据的方法等放到一起,这样不管应用多大,都可以快速定位到某个功能的所有相关代码,维护方便设置

如果功能复杂,代码量大,我们还可以进行逻辑拆分处理。


Vue3.0 新特性以及使用总结


总结:

组合式API的由来。由于vue3中提供了一个新的写代码的方式(老方式也是可以使用的),为了区别vue2,给他们各自取了不同的名字:

Vue2选项式API(option api) 优点:简单,各选项各司其职;缺点:不方便功能复用;功能代码分散维护代码横跳

Vue3组合式API(composition api) 优点:功能代码组合维护, 方便功能复用;


4、setup 

setup 函数是一个新的组件选项,作为组件中组合式API 的起点(入口)

setup 中不能使用 this, this 指向 undefined

setup函数只会在组件初始化的时候执行一次

setup函数在beforeCreate生命周期钩子执行之前执行

setup() {    console.log('setup....', this)},beforeCreate() {    console.log('beforeCreate') // 它比setup迟}

setup 参数:

使用setup 时,它接受两个参数:

props: props为一个对象,内部包含了父组件传递过来的所有prop数据

context: context对象包含了attrs,slots, emit属性

返回值

这个函数的返回值是一个对象,在模版中需要使用的数据和函数,需要在这个对象中声明(如果在data()中也定义了同名的数据,则以setup()中为准)。

<template>  <div class="container">    姓名:{{name}},月薪:{{salary}} <button @click="say">打个招呼</button>  </div></template><script>export default {  setup () {    console.log('setup执行了,这里没有this. this的值是:', this)     // 定义数据和函数    const name = '小吴'    const salary = 18000    const say = () => {      console.log('我是', name)    }     // 返回对象,给视图使用    return { msg , say}  },  beforeCreate() {    console.log('beforeCreate执行了, 这里有this,this的值是:',  this)  }}</script>

setup 中接受的props是响应式的, 当传入新的 props 时,会及时被更新。由于是响应式的, 所以不可以使用 ES6 解构,解构会消除它的响应式。 错误代码示例, 这段代码会让 props 不再支持响应式:

export default com ({    setup(props, context) {        const { uname } = props        console.log(uname)    },})

开发中我们想要使用解构,还能保持props的响应式,有没有办法解决呢?setup接受的第二个参数context,我们前面说了setup中不能访问 Vue2 中最常用的this对象,所以context中就提供了this中最常用的三个属性:attrs、slot 和emit,分别对应 Vue2.x 中的 $attrs属性、slot 插槽 和$emit发射事件。并且这几个属性都是自动同步最新的值,所以我们每次使用拿到的都是最新值。


5、reactive、ref 与 toRefs

在 vue2.x 中, 定义数据都是在data中, 但是 Vue3.x 可以使用 reactive 和 ref 来进行数据定义。

如何取舍ref和reactive?

定义响应式数据有两种方式:

-- ref函数(可以处理简单数据,也可以处理复杂数据),常用于将简单数据类型定义为响应式数据

在代码中修改(或者获取)值时,需要补上.value

在模板中使

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Vue3.0 新特性以及使用总结

相关文章

  • 如何手机端判断浏览器的类型(JavaScript)
  • PHP实现长轮询消息实时推送功能代码实例讲解
  • 织梦CMS二次开发后台添加设置LOGO的功能
  • PS广告创意设计实例——拼出来的艺术
  • PHP遍历读取文件夹中图片并分页显示
  • AI教程圆环渐变LOGO设计教程
  • 解决sqlServer使用ROW_NUMBER时不排序的方法
  • PhotoShop制作简单的桔子果肉文字效果新手教程
  • 浅析Angular中HttpClientModule模块有什么用?怎么用?
  • Discuz后台计划任务不运行解决方法

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • Illustrator使用混合和透明度制作发光按钮
    • JS去除腾讯爱奇艺优酷视频右上角LOGO
    • 解决php Composer出现SSL报错问题
    • CentOS7如何使用yum安装PHP7.3
    • PhotoShop打造漂亮的花草装饰艺术字效果教程
    • uniapp怎么实现小程序页面的自由拖拽功能
    • php使用blob存取图片的信息(含源码)
    • 小程序如何获取input标签的值
    • Thinkphp6自定义配置文件以及调用(config文件夹下的配置)
    • 这几个WordPress插件存在高危漏洞!

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有