js與vue基礎學習

vue創建項目

安裝node

  1. 安裝node、npm、cnpm

    node -v
    npm -v
    #npm服務器位置處于國外,下載包的速度會比較緩慢。阿里為國內用戶提供的cnpm,他是npm的鏡像,下載第三方包時,們完全可以使用cnpm來替代npm。
    cnpm -v
    
  2. 在node中執行JavaScript程序

    #輸入命令node,按回車鍵即可進入node的終端,然后可以在這個終端輸入JavaScript程序
    node# 可以使用node命令執行js文件,例如我們在一個test目錄中新建一個hello.js文件,然后在此目錄下
    node hello.js
    

創建第一個vue項目

目前前端開發最火熱的三大框架分別是React、Angular和Vue

  1. 全局安裝vue-cli

    # -g指全局安裝,安裝在本機中,只安裝一次
    npm install -g @vue/cli
    
  2. vue創建項目

    vue create hello
    
  3. 創建項目后,根據相應提示進入項目目錄中,使用命令啟動項目

    npm run serve
    # 啟動后根據提示的url訪問
    
  4. 項目簡介

    • node_modules:存放項目依賴包
    • public:存放靜態文件(例如圖片等)
    • src:項目源文件,后續開發幾乎都在這個目錄下進行
      • main.js為項目的入口文件
      • App.vue是單文件組件
    • 自定義組件一般在components目錄中創建,命名用大駝峰的方式。
  5. 組件化開發

    • 以vue為后綴的文件是vue的單文件組件,我們在開發vue應用的過程中,主要任務就是去編寫這些以vue為后綴的文件。大家可以把組件理解成一個,可以自定義的,有更強大功能的標簽。
    //main.js文件說明
    import Vue from 'vue'
    import App from './App.vue'Vue.config.productionTip = false   //配置開發選項,開發過程中的錯誤提示new Vue({render: h => h(App),//上面render箭頭函數相當于下面的return,h也是一個函數createElement,將App組件作為參數傳入//作用:將App.vue組件傳入,createElement可以將App組件渲染到#app(index.html中的id=app的DOM節點),//從而將組件加載到html文件中對應DOM節點中,這樣,就成功地將單文件組件App.vue加載到index.html中了// return (createElement){//   return createElement(app);// }
    }).$mount('#app')
    

vue語法

vue文件說明

<template><!-- 組件的應用 -->
</template><script>//  導入其他組件,定義該組件的數據、方法等
</script><style>/* 組件的樣式  */
</style>
  • template標簽中添加的是html代碼,template內部所有內容都要包含在一個標簽之內。
  • script標簽中添加的是JavaScript代碼
  • style標簽中添加的是CSS樣式。

例子:

<template><!-- template:網頁模板,編寫的是html代碼,template內部所有內容都要包含在一個標簽之內 --><div id="app"><img alt="Vue logo" src="./assets/logo.png"></div>
</template><script>
// script標簽中添加的是JavaScript代碼
import HelloWorld from './components/HelloWorld.vue'
//用模塊化的語法export default將組件的示例暴露給外部,這樣組件文件才能被使用
export default {name: 'App',components: {HelloWorld}
}
</script><style>
/* style標簽中添加的是CSS樣式 */
#app {font-family: Avenir, Helvetica, Arial, sans-serif;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;text-align: center;color: #2c3e50;margin-top: 60px;
}
</style>

vue模板語法

  1. 指令

    指令 (Directives) 是帶有 v- 前綴的特殊屬性

    • v-bind:綁定屬性**(簡寫:)**
    • v-on:綁定事件**(簡寫@)**

    綁定屬性和事件的方法:

    <template><div><h1 :title="message">hello world</h1><button @click="sayHi">say hi</button></div>
    </template><script>
    export default {data(){return {message:"hello vue"}},methods:{sayHi(){alert("Hi!")}}
    }
    </script>
    
  2. 條件判斷

    通過v-ifv-show指令可以控制元素的顯示與隱藏:

    • v-if='false':不會渲染DOM,瀏覽器控制臺查看元素不可見。
    • v-show='false':會渲染DOM,查看元素可見,但是樣式為display:none;,即前端樣式用戶不可見
  3. 顯示列表v-for指令

    顯示列表的功能在web應用中是非常常見的,例如文章列表、博客列表,學生列表等等,可以使用v-for指令將數據綁定在列表中

組件嵌套

  1. 引入組件+注冊組件

    <script>
    import Hello from "@/components/Hello"
    import HelloWorld from "@/components/HelloWorld"     //引入組件
    export default {components:{Hello,HelloWorld      //注冊組件}
    }
    </script>
    
  2. 使用引入的組件

    <template><div><Hello img=“”></hello><HelloWorld></HelloWorld>    <!-- 該標簽是自定義組件,引入后可當標簽使用 --><!-- 在template中,組件的標簽不區分大小寫,切駝峰命名的組件可以使用 - 鏈接 ,下面的和HelloWorld是同一個標簽--><Hello-World></Hello-World><hello-world></hello-world></div>
    </template>
    

組件傳值

  1. 組件傳值3種情況

    • 父級向子級傳遞數據
    • 子級向父級傳遞數據
    • 非父子級傳遞數據
  2. 父級向子級傳值

    父級可以通過屬性向子級傳遞數據:

    • 創建子組件,在src/components/文件夾下新建一個Child.vue
    • Child.vue的中創建props,然后創建一個名為message的屬性
    //父級App.vue
    <template><div><h1>hello world</h1><!-- 父級通過屬性向子級傳遞數據 --><child :msg="message"></child></div>
    </template><script>
    import Child from "./components/Child.vue"
    export default{components:{Child},data(){return {message:"app.vue data"}}
    }
    </script><style></style>
    //子級Child.vue
    <template><div><h1>{{msg}}</h1></div>
    </template><script>export default{// 子級獲取父級的數據通過props屬性,msg為子級標簽自定義的屬性props:["msg"]
    }
    </script>
  3. 子級向父級傳遞數據

    子級想父級傳遞數據需要用自定義事件:

    //父級App.vue
    <template><div><h1>{{childData11}}</h1><!-- 父級通過屬性向子級傳遞數據 --><child @myevent="changeData1" :msg="message"></child></div>
    </template><script>
    import Child from "./components/Child.vue"
    export default{components:{Child},data(){return {message:"app.vue data",childData11:""             //默認值}},methods:{changeData1(childData1){this.childData11=childData1;}}
    }
    </script><style></style>
    
    //子級Child.vue
    <template><div><h1>{{msg}}</h1><!-- 點擊按鈕時觸發sendData方法 --><button @click="sendData">向父級傳遞數據</button>   </div>
    </template><script>export default{// 子級獲取父級的數據通過props屬性,msg為子級標簽自定義的屬性props:["msg"],data(){return {childData:"I am child"}},methods:{sendData(){this.$emit("myevent",this.childData)     //通過$emit方法可以觸發父級的自定義事件,第二個參數是myevent調用函數的參數}}
    }
    </script>
    
  4. 非父子級組件傳值

    目錄結構:

    • src
      • components
        • Sister.vue
        • Brother.vue
      • store.js
      • main.js
    //store.js
    export default {state:{message:"hello vue"},setStateMessage(str){this.state.message = str;}
    }<!-- sister組件 -->
    <template><h1>{{state.message}}</h1>
    </template><script>
    import store from "../store.js"
    export default {data(){return {title:"sister組件",state:store.state}}
    }
    </script><!-- brother組件 -->
    <template><div><button @click="changeData">change data</button></div>
    </template><script>
    import store from "../store.js"
    export default {methods:{changeData(){store.setStateMessage("122");console.log(store.state.message)}}
    }
    </script>

參考資料

文檔資料:https://xiaozhoubg.com/book/section/145

視頻:https://www.bilibili.com/video/BV1er4y1P7UN?p=6

vue官網:https://cn.vuejs.org/v2/guide/#%E8%B5%B7%E6%AD%A5

js基礎

變量與運算符

  1. var**(最新版本ES2015使用let,let語法更嚴謹)**

    var s = "hello world";    //var用來聲明變量
    var s1 = "hello",s2="world";    //逗號可以連續聲明變量
    
  2. 瀏覽器console控制臺打印

    console.log(s1);
    
  3. 數據類型6種

    var s = "hello";     //字符串 String類型
    var s2 = 100;     //數值  Number類型
    var s3 = true;    //布爾類型  Boolean
    //另外
    //未定義類型(Undefined):undefined,變量未賦值,值為undefined
    var v;
    console.log(v);   //v的值為undefined
    //空類型(Null):null,未初始化一個對象,可以暫時賦值null   
    //對象(Object):{}   
    
  4. 注意:運算符

    //==與===
    console.log(20=="20");   //true,不比較數據類型
    console.log(20==="20");   //false,常用
    //!=與!==
    console.log(20!="20");   //false
    console.log(20!=="20");   //true,常用//邏輯與或時,常用===和!==
    

函數

  1. 語句塊用{}括起來

  2. 函數通過function關鍵字聲明,聲明時不執行,調用時才執行;

    //聲明函數
    function fun(){//語句
    }
    //調用函數,調用寫在聲明前也可以正常調用(函數提升特性)
    fun();
    
  3. 函數表達式

    //函數表達式,沒有函數提升特性
    const fun = function(n,m){return n+m;
    }
    let result = fun(10,20);    //直接用fun調用
    
  4. 函數默認值

    function fun = function(n=10,m=20){return n+m;
    }
    let result = fun();   //沒有實參時使用默認值
    console.log(result);
    let result = fun(30,5);    //有實參時使用實參
    console.log(result);
    let result = fun(100);    //也可以傳一個實參,另一個使用默認值
    console.log(result);
    
  5. 立即執行函數

    //兩個(),即聲明完直接執行,只能調用一次
    (function(){console.log("hello")
    })()
    
  6. 箭頭函數

    //原函數
    const fun = function(x){return x * x;
    }
    let result = fun(2); 
    console.log(result);
    //對應的箭頭函數,刪去function,在()和{}之間加個箭頭
    const fun = (x) => { return x * x;
    }
    //一個參數時,還可以在簡化
    const fun = x =>  x * x;
    
  7. 箭頭函數中的this;

    • 普通函數中的this指向的是調用該函數的對象
    • 箭頭函數:this在哪里定義,就指向誰
    const cat = {name:"miaomiao",sayName(){setInterval(function(){console.log(this.name)},1000)        //定時函數,每1000ms執行一次function}
    }
    cat.sayName();   //這時無法輸出miaomiao,因為定時函數setInterval返回的是window類型,setInterval內部的this指向的是setInterval函數//使用箭頭函數
    const cat = {name:"miaomiao",sayName(){setInterval(() => {console.log(this.name)},1000)        }
    }
    cat.sayName();   //這時輸出miaomiao
    

對象

  1. js中的對象:是6種數據類型中的一種;屬性的無序集合

    //定義對象
    var cat = {name: "miaomiao",age: 16
    }
    //使用屬性
    console.log(cat.age);   //.方式,一般常用
    console.log(cat["age"]);   //[""]方式
    
  2. 對象的某個屬性可以是函數值

    var cat = {name: "miaomiao",age: 16,sayName: function(){console.log("我是苗苗")},sayName(){           //最新版本ES2015的簡寫方式,不寫functionconsole.log("我是苗苗")},eat: function(food){console.log("吃"+ food);},computed:function(x,y){return x+y;}
    }
    //調用
    cat.sayName()
    cat.eat("魚")
    var result = cat.computed(1,3);
    console.log(result);
    
  3. 屬性賦值

    var cat = {name: "miaomiao",sayName: function(){console.log("我是"+this.name)},eat: function(food){console.log("吃"+ food);},computed:function(x,y){return x+y;}
    }//賦值使用
    cat.name="小白";
    cat.sayName();   //輸出”“我是小白
    
  4. 對象類型

    • 自定義對象:封裝
    • 內置對象:例如Date,獲取當前時間
    • 宿主對象:document
    • 第三方對象:jQuery、vue等

面向對象

  1. ES5版本沒有類的概念,通過構造函數實現,構造函數函數名首字母大寫

    function Dog(n,a){this.name=n;this.age=a;
    }//通過原型對象prototype,為構造函數生成的對象賦予新的方法
    Dog.prototype.sayName = function(){console.log('我的名字是${this.name}');
    }var dog = new Dog("小白",2);
    console.log(dog.name);var dog1 = new Dog("小白2",2);
    dog1.sayName();
    
  2. ES2015(ES6)的面向對象:class

    class Dog{constructor(name,age){   //構造函數this.name=name;this.age=age;}sayName(){        //其他方法console.log('我的名字是${this.name}');}
    }
    let dog = new Dog("小白",2);
    console.log(dog.name);
    dog.sayName()
  3. ES6的繼承

    class Animal{constructor(name){   //構造函數this.name=name;}sayName(){        //其他方法console.log('我的名字是${this.name}');}
    }class Dog extends Animal{      //繼承constructor(name,age){   //構造函數super(name);this.age=age;}
    }let dog = new Dog("小白");
    dog.sayName()let dog = new Dog("小白",2);
    console.log(dog.age);

數組

  1. 定義數組

    var list = ["a","b"];
    var list = new Array("a","b");  //new 構造函數//使用
    console.log(list);
    var item=list[0];
    console.log(item);
    var length=list.length;
    console.log(length);
    
  2. 遍歷數組

    //while\for循環
    //for in 遍歷:i是索引值
    for(var i in list){console.log(list[i]);
    }
    //for of 遍歷:i是元素值
    for(var i of list){console.log(i);
    }
    //map方法遍歷:參數是函數
    list.map(function(value,index){console.log(value);   //輸出值console.log(index);   //輸出索引
    });
    
  3. 數組的常用方法

    • map方法

    • push方法:在數組最后追加元素,list.push(“f”)

    • sort方法:排序

    • filter方法:過濾器

      var list = [1,3,6,5,2];
      var newList = list.filter(function(item){if(item>=3){return item;  //滿足條件的放入newList里}
      })
      console.log(newList);   //過濾出大于等于3的組成新的數組
      
    • join方法:連接數組里元素成字符串

      var list = ["a","b"];
      var str = list.join("+");   //參數為連接符
      console.log(str);   //輸出字符串類型:a+b
      
  4. 結合數組與對象

    var list = [{name:"小明",age:2,sex:"男"},{name:"小明2",age:3,sex:"女"},{name:"小明3",age:4,sex:"男"},
    ]console.log(list[0].name);
    //遍歷:找出所有男同學放入新數組
    var newList = list.filter(function(item){if(item.sex==="男"){return item;  //滿足條件的放入newList里}
    })
    console.log(newList);
    

正則表達式

  1. 定義正則表達式

    var str = "123aa";
    var reg = /^[a-z]$/;  //正則表達式,匹配字母
    reg.test(str);   //正則表達式對象的test方法可以檢測是否匹配,匹配成功返回true
    reg.exec(str);   //exec方法可以輸出匹配的內容
    

DOM & BOM基礎

  1. DOM

    • dom:文檔對象模型(document對象)
    //事件函數
    <body><button>按鈕</button><div class="box"> </div><div> <img src="image/1.jpg" alt=""></div><script>let btn = document.querySelector("button");btn.onclick = function(){     //事件監聽函數,點擊事件console.log("hello");img.src="image/2.jpg";      //改變圖片,鼠標點擊后切換圖片}let box = document.querySelector(".box");box.onmouseenter = function(){     //事件監聽函數,鼠標移入事件console.log("hello red");this.style.backgroundColor= "blue";    //設置樣式,鼠標移入背景變藍}box.onmouseleave = function(){     //事件監聽函數,鼠標移出事件console.log("hello box");}</script>
    </body>
    
  2. BOM

    • bom:瀏覽器對象模型
      • window對象(全局對象)
      • screen對象,包含用戶屏幕信息
      • location對象,獲取當前頁面的url,并把瀏覽器重定向到新的頁面
      • history對象,包含瀏覽器歷史
      • navigator對象,包含有關訪問者瀏覽器的信息

    文檔:https://www.w3cschool.cn/javascript/js-window-screen.html

參考資料

學習視頻:https://www.bilibili.com/video/BV1GC4y1p7Nu?spm_id_from=333.788.b_636f6d6d656e74.5

視頻中代碼:https://github.com/xiaozhoulee/xiaozhou-frontend

文檔:https://xiaozhoubg.com/book/section/56

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/89173.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/89173.shtml
英文地址,請注明出處:http://en.pswp.cn/web/89173.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【開源.NET】一個 .NET 開源美觀、靈活易用、功能強大的圖表庫

文章目錄一、項目介紹二、適用場景三、功能模塊四、功能特點五、效果展示六、開源地址一、項目介紹 LiveCharts2 是一個開源、簡單、靈活、交互式且功能強大的 .NET 圖表庫。LiveCharts2 現在幾乎可以在任何地方運行&#xff1a;Maui、Uno Platform、Blazor-wasm、WPF、WinFor…

使用Whistle自定義接口返回內容:Mock流式JSON數據全解析

一.mock接口返回數據流程 定位目標接口 在Whistle的Network面板中找到需要Mock的接口&#xff0c;右鍵點擊請求信息&#xff0c;選擇COPY -> URL復制完整URL&#xff0c;確保URL路徑精確到具體接口。準備Mock數據 點擊對應接口&#xff0c;在右側面板切換到response標簽頁&a…

【前端】富文本編輯器插件 wangEditor 5 基本使用(Vue2)

https://www.wangeditor.com/v5 一、安裝 首先安裝editor yarn add wangeditor/editor # 或者 npm install wangeditor/editor --save安裝Vue2組件 yarn add wangeditor/editor-for-vue # 或者 npm install wangeditor/editor-for-vue --save或者Vue3 yarn add wangeditor/…

自適應哈希索引 和 日志緩沖區

目錄 1. 自適應哈希索引在內存中的位置 2. 自適應哈希索引的作用 3. 為什么要創建自適應哈希索引 4. 適應哈希索引的Key -Value如何設置&#xff1f; 5. 日志緩沖區在內存中的位置 6. 日志緩沖區的作用 7. 日志不通過LogBuffer直接寫入磁盤不行嗎&#xff1f; 1. 自適應哈…

中國旅行社協會在京召開“文旅人工智能應用研討會”,助力文旅創新發展

7月15日&#xff0c;由中國旅行社協會數字經濟專業委員會和在線旅行服務商分會聯合主辦的“人工智能技術在文旅產業中的應用”研討會在北京舉行。中國旅行社協會副會長、秘書長孫桂珍出席并致辭&#xff0c;中國工程院外籍院士、具身智能機器人專家張建偉、北京第二外國語學院旅…

Linux之Zabbix分布式監控篇(一)

一、概念和特點概念Zabbix是一款開源、免費的監控軟件 主要用于7*24*365實時監控網絡設置&#xff0c;操作系統&#xff0c;應用程序&#xff0c;網絡帶寬等資源的運行狀態&#xff0c;并且一旦發生異常能夠第一時間個SA管理員發送報警信息特點Zabbix是c/s結構&#xff0c;有c…

ZYNQ千兆光通信實戰:Tri Mode Ethernet MAC深度解析

—— 從硬件設計到Linux驅動的光通信創新實踐** 當ZYNQ遇上光通信 在工業控制、醫療成像和航空航天等領域,抗干擾、長距離傳輸的光通信技術至關重要。Xilinx ZYNQ-7000系列憑借ARM+FPGA的架構,結合Tri Mode Ethernet MAC (TEMAC) 核心,為千兆光通信提供了完美解決方案。本文…

求不重疊區間總和最大值

例題鏈接&#xff1a;1051-習題-數學考試_2021秋季算法入門班第一章習題&#xff1a;模擬、枚舉、貪心 來源&#xff1a;牛客網 時間限制&#xff1a;C/C/Rust/Pascal 1秒&#xff0c;其他語言2秒 空間限制&#xff1a;C/C/Rust/Pascal 32 M&#xff0c;其他語言64 M 64bit …

【Golang】GORM - GEN工具 快速開始

文章目錄建項目建庫建表main.gouser.gocompany.go生成效果&#xff08;更進一步&#xff09;自定義dynamic SQL實踐官方地址&#xff1a;https://gorm.io/zh_CN/gen/index.html 以mysql為例 建項目 go mod init 項目名稱 go mod tidy建庫建表 建數據庫demo&#xff0c;正常…

飛書 “打破” AI 與協同辦公的「黑箱」

文 | 智能相對論作者 | 陳泊丞在協同辦公領域&#xff0c;自從有了AI&#xff0c;微軟、釘釘、Google Workspace、Salesforce、企業微信、飛書等廠商都試圖通過深度整合AI技術&#xff0c;從智能會議、內容創作、數據管理等場景重構辦公范式。微軟通過Microsoft 365 Copilot將A…

leetcode:674. 最長連續遞增序列[動歸]

學習要點 練習動歸注意不要馬虎 題目鏈接 674. 最長連續遞增序列 - 力扣&#xff08;LeetCode&#xff09; 題目描述 解法&#xff1a;動歸 class Solution { public:int findLengthOfLCIS(vector<int>& nums) {int n nums.size();if(nums.size() < 1) …

【html常見頁面布局】

考拉商城界面效果htmlcss效果 html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</ti…

摩爾線程MUSA架構深度調優指南:從CUDA到MUSA的顯存訪問模式重構原則

點擊 “AladdinEdu&#xff0c;同學們用得起的【H卡】算力平臺”&#xff0c;H卡級別算力&#xff0c;按量計費&#xff0c;靈活彈性&#xff0c;頂級配置&#xff0c;學生專屬優惠。 當國產GPU面臨生態壁壘&#xff0c;顯存訪問效率成為性能突破的關鍵戰場。本文將深入揭示摩爾…

2025江蘇省信息安全管理與評估賽項二三階段任務書

任務 3 網絡安全事件響應、數字取證調查、網絡安全滲透任務3.1&#xff1a;網絡安全事件響應&#xff08;100分&#xff09;X集團的一臺存儲關鍵信息的服務器遭受到了黑客的攻擊&#xff0c;現在需要你對該服務器進行應急排查&#xff0c;該服務器的系統目錄被上傳惡意文件&…

核電概念盤中異動,中核科技漲停引領板塊熱度

今日股市交易時段&#xff0c;核電概念板塊表現活躍&#xff0c;中核科技強勢漲停&#xff0c;成為市場關注焦點&#xff0c;為核電產業鏈相關投資與發展增添新的動態信號。中核科技作為核電閥門等關鍵設備領域的重要企業&#xff0c;其漲停背后&#xff0c;是多重因素共同作用…

《Java語言程序設計》1.2.3復習題

縮寫"CPU"代表什么含義?測量CPU速度的單位是什么?中央處理器(Central Processing Unit,CPU)是計算機的大腦。它從內存中獲取指令并執行這些指令。CPU通常由兩部分組成&#xff1a;控制單元(control unit)和算術/邏輯單元(arithmetic/logic unit)。控制單元用于控制…

【迭代】繪本生成方案迭代2,解決錄音播放問題

代碼分享】AI輔助編程&#xff1a;動手制作繪本生成器&#xff0c;實現繪本自由 前面分享了生成繪本PDF的方案&#xff0c;只有圖片和文字。所以想加上文字的錄音播放。 經過一番探索&#xff0c;發現要實現這個功能的可行性高的方案是用戶點擊播放&#xff0c;需要跳轉到瀏覽…

C++設計模式之創建型模式

1.前言 設計模式一共有23種&#xff0c;主要分為三大類型&#xff1a;創建型&#xff0c;結構型&#xff0c;行為型。本篇文章著重講解的是創建型一些相關的設計模式 2.單例模式 Singleton 模式是設計模式中最為簡單、最為常見、最容易實現&#xff0c;也是最應該熟悉和掌握的…

kubernetes學習筆記(一)

kubernetes學習筆記(一) kubernetes簡介 ? Kubernetes是Google開源的一個容器編排引擎&#xff0c;它支持自動化部署、大規模可伸縮、應用容器化管理。在生產環境中部署一個應用程序時&#xff0c;通常要部署該應用的多個實例以便對應用請求進行負載均衡。 ? 在Kubernetes…

Eureka實戰

1.創建父工程SpringCloudTestSpringCloudTest為父工程&#xff0c;用于引入通用依賴&#xff0c;如spring-boot-starter-web、lombok&#xff0c;這樣子工程就可以直接繼承&#xff0c;無需重復引入。在dependencyManagement標簽中引入和springboot版本對應的springcloud&#…