vue2使用vue3语法
Composition API
Composition API 将是 Vue 3 的核心功能,它具有许多更改和性能改进。
我们也可以在 Vue 2 中通过 npm 插件@vue/composition-api 使用它。
安装 yarn add @vue/composition-api 之后,在入口文件 main.js 中使用它。
import Vue from 'vue'
import VueCompositionAPI from '@vue/composition-api'
Vue.use(VueCompositionAPI)
之后,你就可以在你vue2项目中用vue3的组合式API来编写组件了!
<template>
<button @click="increase">count is: {{ count }}</button>
</template>
<script>
export default {
setup() {
let count = 0
const increase = () => count++
return { count, increase }
},
}
</script>
script setup
<script setup>语法糖可以使得组合式API编写更为简洁。
这里我们通过unplugin-vue2-script-setup 让vue2在使用@vue/composition-api的基础上也能使用上此特性!
安装 yarn install --dev unplugin-vue2-script-setup,之后在vue.config.js中进行配置
const ScriptSetup = require('unplugin-vue2-script-setup/webpack').default
module.exports = {
parallel: false, // disable thread-loader, which is not compactible with this plugin
configureWebpack: {
plugins: [
ScriptSetup({ /* options */ }),
],
},
}
可否在script上直接设置name=“xxxx”吗?
<script setup>语法可以表达大多数现有 Options API 选项的等效功能,但以下几个选项除外:name、inheritAttrs、自定配置项目,但是您可以这么做
<script>
export default {
name: 'CustomName',
inheritAttrs: false,
customOptions: {}
}
</script>
<script setup>
// script setup logic
</script>
路由和vuex等
Vue2 Helpers 能让你在vue2中也能使用到更先进的api,比如 useRouter
import { useRouter } from 'vue2-helpers/vue-router';
const router = useRouter();
router.push('/login');
访问全局属性
通常情况下,我们是通过 this.$xx访问,如 this.$store 或者 ui框架挂全局的方法 this.$confirm( )。
但是组合式API显然没有this,可因为是vue2 全局内容有不得不以this访问,可以这样
<script setup>
import Vue from "vue";
const _this = Vue.prototype;
_this
.$confirm("确认关闭?")
.then((_) => {})
.catch((_) => {});
};
// 或者
// import { getCurrentInstance } from "@vue/composition-api";
// const _this = getCurrentInstance();
// console.log(_this);
</script>
父子通信
父组件访问子组件属性
<template>
<div class="app">
<helloword ref="helloword" />
<el-button type="primary" @click="test()">测试</el-button>
</div>
</template>
<script setup>
import { ref } from "@vue/composition-api";
import helloword from "./helloword.vue";
const helloword = ref(null);
const test = () => {
helloword.value.submit();
};
</script>
<template>
<div class="helloword">
子组件
</div>
</template>
<script setup>
import { defineExpose } from "@vue/composition-api";
const submit = () => {
alert(123);
}
defineExpose({
submit,
});
</script>
vue2使用vue3语法的更多相关文章
- vue2升级vue3指南(二)—— 语法warning&error篇
本文总结了vue2升级vue3可能会遇到的语法警告和错误,如果想知道怎样升级,可以查看我的上一篇文章:vue2升级vue3指南(一)-- 环境准备和构建篇 Warning 1.deep /deep/和 ...
- Vue3语法快速入门以及写一个倒计时组件
Vue3写一个倒计时组件 vue3 beta版本发布已有一段时间了,文档也大概看了一下,不过对于学一门技术,最好的方法还是实战,于是找了一个比较简单的组件用vue3来实现,参考的是vant的count ...
- Vue2和Vue3技术整理1 - 入门篇 - 更新完毕
Vue2 0.前言 首先说明:要直接上手简单得很,看官网熟悉大概有哪些东西.怎么用的,然后简单练一下就可以做出程序来了,最多两天,无论Vue2还是Vue3,就都完全可以了,Vue3就是比Vue2多了一 ...
- 盘点Vue2和Vue3的10种组件通信方式(值得收藏)
Vue中组件通信方式有很多,其中Vue2和Vue3实现起来也会有很多差异:本文将通过选项式API 组合式API以及setup三种不同实现方式全面介绍Vue2和Vue3的组件通信方式.其中将要实现的通信 ...
- Vue2 到 Vue3,重温这 5 个常用的 API
距离Vue3发布已经过去一年多时间了,从Vue2到Vue3是一个不小的升级,包括周边生态等.虽然目前大多数开发者们在使用的仍旧以Vue2为准,但Vue3显然是Vue开发者们未来必须面对的,而且前不久V ...
- vue2升级vue3:vue2 vue-i18n 升级到vue3搭配VueI18n v9
项目从vue2 升级vue3,VueI18n需要做适当的调整.主要是Vue I18n v8.x 到Vue I18n v9 or later 的变化,其中初始化: 具体可以参看:https://vue- ...
- vue2和vue3生命周期的区别
概念 首先,我们了解一下"生命周期"这个词.通俗的来说,生命周期就是一个事务从出生到消失的过程.例如,一个人从出生到去世.在vue中,vue的生命周期是指,从创建vue对象到销毁v ...
- vue2升级vue3:Vue Demij打通vue2与vue3壁垒,构建通用组件
如果你的vue2代码之前是使用vue-class-component 类组件模式写的.选择可以使用 https://github.com/facing-dev/vue-facing-decorator ...
- vue2和vue3的区别?
vue2和vue3的主要区别在于以下几点: 1.生命周期函数钩子不同 2.数据双向绑定原理不同 3.定义变量和方法不同 4.指令和插槽的使用不同 5.API类型不同 6.是否支持碎片 7.父子组件之间 ...
- vue3语法糖+ts组件传值
在开发中有些功能是通用的,而且逻辑大致相同,像这种东西可以封成一个组件,比较常用的就是函数封装,组件封装,组件封装是需要引入到页面使用的,所以通常它会有一些自己的方法,父子组件可以通过一些值来进行关联 ...
随机推荐
- Selenium自动安装并引用浏览器驱动的方法
以往的程序是先下载和把浏览器驱动放在指定目录,然后在基本中引用驱动完成整个浏览器环境配置 刚好在网上看到一个更加简便的方法,记录下来 1.先安装第三方库webdriver_manager,pip in ...
- ESP-IDF教程1 开发环境
1.开发环境 对于 ESP32 系列芯片的开发环境主要有如下几种方式: ESP-IDF(Espressif IoT Development Framework) Arduino PlatformIO ...
- Docker光速入门
1.docker是什么,能干什么 Docker 是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中 ...
- C# 基础——CLR、托管代码及非托管代码
C# 基础--CLR.托管代码及非托管代码 应用程序的类型 使用.net的编程语言(C#.F#.VB)创建的应用程序,都会被编译器编译成中间语言IL语言,在CLR(公共语言运行时)中运行. 比如:控制 ...
- 15.4K Star!Vercel官方出品,零基础构建企业级AI聊天机器人
嗨,大家好,我是小华同学,关注我们获得"最新.最全.最优质"开源项目和高效工作学习方法 "基于Next.js 14和AI SDK打造的Chat SDK,让开发者快速构建支 ...
- Web前端入门第 45 问:CSS 变量 var() 轻松实现主题换肤功能
HELLO,这里是大熊的前端开发笔记. 曾经主题切换功能可以作为软件中亮眼的卖点存在,毕竟那时候要实现换肤可不容易,一套主题一套样式,这代码的重复率嗖嗖嗖的就涨上去了~~当然也可以借助 CSS 预编译 ...
- Nacos源码—6.Nacos升级gRPC分析一
大纲 1.Nacos 2.x版本的一些变化 2.客户端升级gRPC发起服务注册 3.服务端进行服务注册时的处理 4.客户端服务发现和服务端处理服务订阅的源码分析 1.Nacos 2.x版本的一些变化 ...
- 鸿蒙NEXT开发教程:浅谈@ComponentV2装饰器
听说今天的广州车展上有一部分人已经看到华为汽车的最后一"界",尊界超豪华大轿车,应该很快就要正式亮相,可以期待一波. 在api12之后,鸿蒙系统推出一个V2版本的状态管理装饰器,不 ...
- 第六章: SEO与交互指标 二
上一篇文章地址 5. 提升用户参与度 提高用户参与度不仅有利于SEO,还能增加转化率和用户留存. 5.1 内容结构优化 使用吸引人的标题和小标题: 使用数字列表.问题形式或"如何" ...
- C#/.NET/.NET Core技术前沿周刊 | 第 38 期(2025年5.12-5.18)
前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录.追踪C#/.NET/.NET Core领域.生态的每周最新.最实用.最有价值的技术文章.社区动态.优质项目和学习资源等. ...