软件定制开发供应商vue2.7 过度,升级指南

 

vue 2.7版本详解

自从 vue3 [代号:海贼王] 在 2022年2月7日 软件定制开发供应商成为默认版本后,vue2 将在 2023年底 彻底结束。

那么最近7月1日发布的, 的最后 2.7 版本 [代号:火影忍者软件定制开发供应商又能有什么用呢?

 vue2.7软件定制开发供应商正是为了解决过度问题,增加了部分的写法和特性,又保留vue2原始特性。

Ⅰ.适用场景

        如果 ui框架和一些三方件 还没有升级到 vue3.x , 这时可以先升级到 vue2.7,用 vue3的写法,去开发 vue2 新页面。

        等到三方件和升级后,我们就可以直接去升级vue3.x,之前用vue3写法开发的页面会享受到 vue3 代理对象proxy的优势; 那么之前 vue2语法, vue3也是兼容的,只是数据响应速度和性能还是vue2的程度。

 

Ⅱ.更新内容 (详解 => Ⅳ)

  • setup() 函数 +  <script setup> ( 单文件组件 )
  • 组合 API (reactive 、ref 、watch ...)
  • CSS v-bind  (单文件组件)
  • Api模块化(如: import { nextTick } from ‘vue’ ; )
  • defineComponent()  重载函数
  • 支持emits对象
  • ...

Ⅲ.升级指南

①删除根目录的  node_modules文件夹   和  package-lock.json

②打开 package.json 文件 => 修改配置如:

 ③修改配置后: 执行命令   npm i  下载升级后的三方件包。

 

 Ⅳ. 新增内容用法和详解

         ①  setup() 函数 和  <script setup> ( 单文件组件 )

  1. <template>
  2. <div>
  3. <h3> {{ num }} </h3>
  4. <button @click = "add"> 增加+1 </button>
  5. </div>
  6. </template>
  7. <!-- 1. setup函数写法 -->
  8. <script>
  9. import { ref } from 'vue';
  10. export default {
  11. setup() {
  12. const num = 123;
  13. function add(){
  14. num.value++;
  15. }
  16. return { num, add };
  17. },
  18. }
  19. </script>
  20. ----------------------------------------------
  21. <!-- setup单文件组件写法 -->
  22. <script setup>
  23. import { ref } from 'vue';
  24. const num = ref(18);
  25. function add(){
  26. num.value++;
  27. }
  28. </script>

②  组合 API  (reactive 、ref 、watch ...)

  1. <template>
  2. <div>
  3. <h3> {{ num }} </h3>
  4. <button @click = "add"> 增加+1 </button>
  5. </div>
  6. </template>
  7. <script setup>
  8. import { ref , watch } from 'vue';
  9. const num = ref(18);
  10. function add(){
  11. num.value++;
  12. }
  13. watch(num ,(now , old)=>{ console.log( 'num更新了=>' + num ) })
  14. </script>

③  CSS v-bind  (单文件组件)

  1. <template>
  2. <div>
  3. <div class='box'></div>
  4. <button @click='colorChange'>更换颜色</button>
  5. </div>
  6. </template>
  7. <script setup>
  8. import { ref } from 'vue';
  9. const bool = ref(false);
  10. const color = ref('red');
  11. function colorChange(){
  12. bool.value = !bool.value;
  13. bool.value?color.value='red':color.value='blue';
  14. }
  15. </script>
  16. <style scoped>
  17. .box{
  18. width:100px;
  19. height:100px;
  20. background:v-bind('color');
  21. }
  22. </style>

④ defineComponent()  重载函数

最重要作用是:在TypeScript下,给予了组件 正确的参数类型推断 。

封装其实意义不大,如:

  1. <!-- 只是对setup函数进行封装,返回options的对象 -->
  2. <script>
  3. export function defineComponent(options: unknown) {
  4. return isFunction(options) ? { setup: options } : options
  5. }
  6. </script>

支持emits对象

主要是子组件调用父组件的方法,起到一个验证作用 =>

① 子组件 如:

  1. <template>
  2. <div>
  3. <button @click = "childClick"> 按钮 </button>
  4. </div>
  5. </template>
  6. <script>
  7. export default {
  8. emits:{
  9. toFather: (bool) { retrun bool };
  10. //=>传入true 才会验证通过
  11. //toFather: null 非验证
  12. },
  13. setup(props,{emit}) {
  14. function childClick(){
  15. emit('toFather', true);
  16. }
  17. return { childClick};
  18. },
  19. }
  20. </script>

②父组件 如:

  1. <template>
  2. <div>
  3. <Btn @toFather = "fun"/>
  4. </div>
  5. </template>
  6. <script>
  7. import Btn from './Btn.vue'
  8. export default {
  9. setup() {
  10. function fun(){
  11. console.log('被子组件 调用了!')
  12. }
  13. return { fun };
  14. },
  15. }
  16. </script>

 Ⅳ. 注意事项

  • reactive( {a:1} )  === { a:1 }  并为和vue3一样 ,采用 proxy 对象,只是写法一样。
  • <script lang= "ts">   写法并不支持
  • 不支持异步组件初始化
  • ...

 

 

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发