欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Vue3带来的惊喜

程序员文章站 2022-07-03 16:42:28
在Vue3.0发布一个以来,通过学习和工作闲余下写了这篇文章,希望可以帮到大家一起更好学习前端!在本次vue3.0的升级后,创作项目新增vite功能,体验vite更快更神速,告别龟速启动项目的鸡肋等待。(以下运行代码)$ npm init vite-app$ cd$ npm install$ npm run devVue3+Typescript新Vue的重大升级,TS划重点了,期末会考!Vuecli升级至4.5npm i -g @vue/cli@next......

在Vue3.0发布一个以来,通过学习和工作闲余下写了这篇文章,希望可以帮到大家一起更好学习前端!

在本次vue3.0的升级后,创作项目新增vite功能,体验vite更快更神速,告别龟速启动项目的鸡肋等待。(以下运行代码)

$ npm init vite-app

$ cd

$ npm install

$ npm run dev

 

Vue3+Typescript

新Vue的重大升级,TS划重点了,期末会考!

 

Vuecli升级至4.5

npm i -g @vue/cli@next

在Vue3也重磅推出一些新特性的使用

 

  1. Composition API 

让计算逻辑更加流畅

<template>
 <div>
   <p>counter: {{counter}}</p>
   <p>doubleCounter: {{doubleCounter}}</p>
   <p ref="desc"></p>
 </div>
</template>

<script>
import {
 reactive,
 computed,
 watch,
 ref,
 toRefs,
 onMounted,
 onUnmounted,
} from "vue";

export default {
 setup() {
   const data = reactive({
     counter: 10,
     doubleCounter: computed(() => data.counter * 2),
  });

   let timer

   onMounted(() => {
     timer = setInterval(() => {
       data.counter--
    }, 1000);
  })

   onUnmounted(() => {
     clearInterval(timer)
  })

   const desc = ref(null)

   watch(()=>data.counter, (val,oldVal)=>{
     desc.value.textContent = `counter change from ${oldVal} to ${val}`
     if(val == 0){
       clearInterval(timer)
       alert('新年快乐')
     }
  })

   return {...toRefs(data), desc};
},
};
</script>

2.Teleport 传送门      ps:与根#app评级

<template>
  <button @click="modalOpen = true">
    点击弹出Teleport</button>

  <teleport to="body">
    <div v-if="modalOpen" class="modal">
      <div>
        这是一个模态窗口!
        我的父元素是"body"!
        <button @click="modalOpen = false">关闭</button>
      </div>
    </div>
  </teleport>
</template>
<script>
export default {
  data() {
    return {
      modalOpen: false
    }
  },
};
</script>
复制代码

3.Vue3组件可支持多个根

<template>
    <head></head>
    <connet></connet>
    <footer></footer>
</template>
复制代码

4.router升级至4.0

$ npm install vue-router@next
复制代码

实例当中Vue2.X与Vue.3的区别

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

//vue3
import {createApp} from 'vue';
import App from './App.vue'
createApp(App).mounte('#app');
复制代码

date统一了

data(){
    return{};
}
复制代码

vue取消Filters,想使用可以用插件

移除$on,$off,$once

 

源码地址:

https://github.com/Acc-cxy/newvue.git

 

 

本文地址:https://blog.csdn.net/Acc13959255444/article/details/109243275