Vue 快速入門:Vue初級

image.png
image.png
image.png

image.png

語法規則

前端渲染

image.png
渲染有幾種方式:原生js、js模板、Vue模板語法

原生js

使用字符串拼接

js模板語法

Vue.js 模板語法概述

Vue.js 是一個用于構建用戶界面的漸進式框架,其模板語法非常靈活和直觀。Vue 的模板語法基于 HTML,可以通過指令、插值和特殊屬性來實現數據綁定和事件處理。以下是 Vue.js 2 的模板語法的主要概念和示例。

1. 插值(Interpolation)

插值用于在模板中顯示數據,可以使用雙大括號 {{ }} 進行文本插值,或者使用 v-bind 進行屬性插值。

<div id="app"><p>{{ message }}</p><p v-bind:title="title">Hover to see the title</p>
</div><script>
new Vue({el: '#app',data: {message: 'Hello, Vue!',title: 'This is a title'}
})
</script>
2. 指令(Directives)

指令是帶有 v- 前綴的特殊特性,用來在模板中做響應式數據綁定。常用指令包括 v-if, v-for, v-show, v-model, v-bind, v-on 等。

  • 條件渲染v-if, v-else-if, v-else
<div id="app"><p v-if="seen">Now you see me</p><p v-else>Now you don't</p>
</div><script>
new Vue({el: '#app',data: {seen: true}
})
</script>
  • 列表渲染v-for
<div id="app"><ul><li v-for="item in items" :key="item.id">{{ item.text }}</li></ul>
</div><script>
new Vue({el: '#app',data: {items: [{ id: 1, text: 'Item 1' },{ id: 2, text: 'Item 2' },{ id: 3, text: 'Item 3' }]}
})
</script>
  • 事件處理v-on
<div id="app"><button v-on:click="sayHello">Click me</button>
</div><script>
new Vue({el: '#app',methods: {sayHello: function() {alert('Hello, Vue!');}}
})
</script>
  • 雙向綁定v-model
<div id="app"><input v-model="message" placeholder="Edit me"><p>Message is: {{ message }}</p>
</div><script>
new Vue({el: '#app',data: {message: 'Hello, Vue!'}
})
</script>
3. 修飾符(Modifiers)

修飾符是以半角句號 . 指明的特殊后綴,用于指出一個指令應該以特殊方式綁定。例如,.prevent, .stop, .capture, .self, .once, .native, .number, .trim

<div id="app"><form v-on:submit.prevent="onSubmit"><button type="submit">Submit</button></form>
</div><script>
new Vue({el: '#app',methods: {onSubmit: function() {alert('Form submitted!');}}
})
</script>
4. 計算屬性和偵聽器
  • 計算屬性:用來對模板中復雜邏輯進行計算并返回結果,類似于 data 屬性,但會基于其依賴項緩存結果。
<div id="app"><p>Reversed message: {{ reversedMessage }}</p>
</div><script>
new Vue({el: '#app',data: {message: 'Hello, Vue!'},computed: {reversedMessage: function() {return this.message.split('').reverse().join('');}}
})
</script>
  • 偵聽器:用于監聽數據屬性的變化并執行相應的操作。
<div id="app"><p>{{ message }}</p>
</div><script>
new Vue({el: '#app',data: {message: 'Hello, Vue!'},watch: {message: function(newVal, oldVal) {console.log('Message changed from', oldVal, 'to', newVal);}}
})
</script>

以上是 Vue.js 2 模板語法的基本介紹和一些示例代碼。這些概念和指令使得 Vue.js 非常靈活和易于使用,適用于各種規模的應用開發。

  • 插值表達式
  • 指令
  • 事件綁定
  • 屬性綁定
  • 樣式綁定
  • 分支循環結構
指令

什么是指令:

  • 什么是自定義屬性
  • 指令的本質就是自定義屬性
  • 指令的格式:以v-開始(比如V-cloak)

v-clock指令用法

在頻繁刷新的時候可能會出現插值表達式,造成用戶體驗不好

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Vue</title><style type="text/css">[v-clock]{display:none;}</style><meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<div id="app"><div v-clock>{{msg}}</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>// v-clock指令用法// 1.提供樣式// [v-clock]{//     display:none;// }// 2.在插值表達式所在的標簽添加v-cloak指令var vm =new Vue({el:'#app',data:{msg:'HelloWord'}});
</script>
</body>
</html>

使用v-clock就可以不顯示插值表達式,刷新頁面直接出來數據
背后原理:

先通過樣式隱藏內容,在內存中進行值的替換,替換好之后在顯示最終的結果。

v-text 純文本信息 v-html(容易遭遇跨站腳本攻擊) v-pre 填充原始信息
v-once:如果顯示的信息后期不需要再修改可以使用,可以提高性能。
v-model 雙向綁定
image.png

MVVM設置思想

M(model)
V(view)
VM(View-Model)
image.png
重點是雙向綁定

事件綁定

v-on指令語法 當然因為經常使用還提供一種簡寫方法@
當然在vue中我們可以給時間綁定一個方法寫在,methods里面
image.png

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Vue</title><style type="text/css">[v-clock]{display:none;}</style><meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<div id="app"><div>{{num}}</div><div><button v-on:click="num++">增加</button><button @click="num++">點擊1</button><button @click="handle">點擊1</button><button @click="handle()">點擊1</button></div>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>var vm =new Vue({el:'#app',data:{num:0},methods:{handle:function (){//這里的this是vue的實例對象console.log(this)this.num++}}});
</script>
</body>
</html>

事件參數傳遞
1.如果時間直接綁定函數名稱,那末默認會傳遞事件對象作為時間函數的第一個函數
2.如果事件綁定函數調用,事件對象必須作為最后一個參數顯示傳遞,必須對象名稱必須$event

 <button @click="handle($event)">點擊1</button>

事件修飾符

image.png

按鍵修飾符

image.png

自定義按鍵修飾符

全局config.keyCodes對象
Vue.config.keyCodes.f1 = 112;
自定義按鍵修飾符名字是自定義的,但是對應的值必須是按鍵對應event對象中keyCode值
Vue.config.keyCodes.aaa = 65

Vue動態處理屬性

v-bind指令用法
跳轉
縮寫形式
跳轉

image.png

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Vue</title><style type="text/css">[v-clock]{display:none;}</style><meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<div id="app"><a v-bind:href="url">百度</a><button @click="handle"></button>//v-model事件雙向綁定其實就是使用了v-bind:value,和@input<div>{{msg}}</div><input type="text" v-bind:value="msg" @input="handle">
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>var vm =new Vue({el:'#app',data:{url:'http://www.baidu.com',msg:'hello'},methods:{handle:function (event){//修改url地址this.url='https://www.imooc.com/';this.msg = event.target.value;}}});
</script>
</body>
</html>

樣式綁定

控制類名
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Vue</title><style type="text/css">.active{border: 1px solid red;width: 100px;height: 100px;}.error{background-color: orange;}</style><meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<div id="app"><div v-bind:class="{active: isAcrive,error: isError}"></div><button @click="handle">切換</button>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>var vm =new Vue({el:'#app',data:{url:'http://www.baidu.com',msg:'hello',isAcrive:true,isError:true},methods:{handle:function (){//控制isActive在true和false之間切換this.isAcrive = !this.isAcrive;}}});
</script>
</body>
</html>

image.png

style樣式處理

image.png

分支循環結構

  • v-if
  • v-else
  • v-else-fi
  • v-show
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Vue</title><style type="text/css">[v-clock]{display:none;}</style><meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<div id="app"><div v-if="score>=90">優秀</div><div v-else-if="score<90&&score>=80">良好</div><div v-if="score<80&&score>=60">一般</div><div v-else>比較差</div><div v-show="flag">11</div><button @click="handle">取反</button>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>var vm =new Vue({el:'#app',data:{score:76,flag:false},methods:{handle:function (){this.flag = !this.flag}}});
</script>
</body>
</html>

循環結構

image.png
在Vue中如果有對象遍歷最好加上key這樣的話就不會報錯,唯一的key

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Vue</title><style type="text/css">[v-clock]{display:none;}</style><meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<div id="app"><div>水果列表</div><ul><li v-for="item in fruits">{{item}}</li><li v-for="(item,index) in fruits">{{item + '____'+ index}}</li></ul>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>var vm =new Vue({el:'#app',data:{fruits:['apple','organg','banana']},methods:{}});
</script>
</body>
</html>

image.png
image.png

Vue的常用特性

  • 表單操作
  • 自定義指令
  • 計算屬性
  • 過濾器
  • 監聽器
  • 生命周期

表單操作

表單修飾符

  • number:轉化為數值
  • trim:去掉開始和結尾的空格
  • lazy:將input時間切換為change事件
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<div id="app"><input type="text" v-model.number="age"><input type="text" v-model.trim="text"><input type="text" v-model.lazy="msg"><div>{{msg}}</div><button @click="handle">點擊</button>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>var vm = new Vue({el:'#app',data:{age:'',text:'',msg:''},methods:{handle:function (){console.log(this.age+1)console.log(this.text)}}})
</script>
</body>
</html>

自定義指令

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<div id="app"><input type="text" v-focus>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>Vue.directive('focus',{inserted:function (el){//el表示指令綁定的元素el.focus();}})var vm = new Vue({el:'#app',data:{},methods:{}})
</script>
</body>
</html>

inserted是鉤子函數,當dom綁定的時候使用運行
image.png

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<div id="app"><input type="text" v-colors="msg">
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script type="text/javascript">//自定義指令帶參數Vue.directive('colors',{bind:function (el,bind){el.style.backgroundColor = bind.value.color;//通過攜帶參數來控制指令的一些具體行為}});var vm = new Vue({el:'#app',data:{msg:{color:'orange'}},methods:{}})
</script>
</body>
</html>

局部指令

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<div id="app"><input type="text" v-colors="msg"><input type="text" v-focus>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script type="text/javascript">//自定義指令帶參數var vm = new Vue({el:'#app',data:{msg:{color:'orange'}},methods:{},directives:{colors:{bind:function (el,bind){el.style.backgroundColor = bind.value.color;//通過攜帶參數來控制指令的一些具體行為}},focus:{inserted:function (el){el.focus();}}}})
</script>
</body>
</html>

局部指令應用范圍是有所限制的,全局指令是沒有限制的

計算屬性computed

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<div id="app"><div>{{msg}}</div><div>{{reversString}}</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>var vm = new Vue({el:'#app',data:{msg:'Hello '},methods:{},//計算屬性,讓模板變得更加簡單computed:{reversString:function (){return this.msg.split('').reverse().join('')}}})
</script>
</body>
</html>

計算屬性computed和methods方法存在什么差異
**
緩存特性在比較耗時的計算節省性能,計算屬性他是基于依賴來做緩存的,當發布存在緩存機制。

計算屬性依賴:data

偵聽器

image.png
數據變化時異步或者開銷比較大

偵聽器用法

image.png

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<div id="app"><div><span></span><span><input type="text" v-model="firstName"></span></div><div><span></span><input type="text" v-model="lastName"></div><div>{{msg}}</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>var vm = new Vue({el:'#app',data:{firstName:'Jim',lastName:'Green',msg:''},watch:{firstName: function (val){this.msg = val + '' + this.lastName;},lastName: function (val){this.msg = this.firstName + '' + val;}}})
</script>
</body>
</html>

監聽器屬性的方法必須和數據里面的方法名稱一致,這樣的監聽才可以實現

監聽器應用場景

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<div id="app"><div><span>用戶名:</span><span><input type="text" v-model.lazy="uname"></span><span>{{tip}}</span></div>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>//1.采用監聽器用戶名稱變化//2.調用后臺接口驗證//3.根據驗證結果調整提示信息var vm = new Vue({el:'#app',data:{uname:'',tip:''},methods:{checkName:function (uname){//調用接口,但是可以使用定時任務方式模擬接口調用var that = this;setTimeout(function (){if (uname == 'admin'){that.tip = '用戶名存在請更換一個';}else{that.tip = '用戶名可以使用';}},2000)}},watch:{uname:function (val){//調用后臺接口驗證用戶名合法性this.checkName(val);//修改提示信息this.tip = '正在驗證。。。';}},})
</script>
</body>
</html>

過濾器

作用:格式化數據,比如將字符串格式化到首字母大寫,將日期格式化為指定的格式等。
image.png

自定義過濾器

image.png

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<div id="app"><input type="text" v-model="msg"><div>{{ msg | upper}}</div><div>{{msg | upper | lower}}</div><div :abc="msg| upper">測試數據</div></div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>//過濾器// Vue.filter('upper',function (val){//     return val.charAt(0).toUpperCase()+val.slice(1);// });// Vue.filter('lower',function (val){//     return val.charAt(0).toLowerCase()+val.slice(1);// });var vm = new Vue({el:'#app',data:{msg:''},filters:{upper: function (val){return val.charAt(0).toUpperCase()+val.slice(1);}}});
</script>
</body>
</html>
帶參數的過濾器
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<div id="app"><div>{{date | format('yyyy-MM-dd')}}</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>//過濾器Vue.filter('format',function (val,arg){if (arg == 'yyyy-MM-dd'){var ret = '';ret += val.getFullYear()+'-'+(val.getMonth()+1) + '-' + val.getDate();console.log(ret)return ret;}console.log(1)})var vm = new Vue({el:'#app',data:{date:new Date()},});
</script>
</body>
</html>

生命周器

主要階段

  • 掛載(初始化相關屬性)
    • beforeCreate
    • created
    • beforeMount
    • mounted
  • 更新(元素或組線的變更操作)
    • beforeUpdate
    • updated
  • 銷毀(銷毀相關屬性)
    • beforeDestroy
    • destroyed

image.png
Vue實例產生會經過8個生命周期

Vue中對于數組的新概念

變異方法(修改原始數據)

  • push()
  • pop()
  • shift()
  • unshift()
  • splice()
  • sort()
  • reverse()
替換數組(形成新的數組)
  • filter()
  • concat()
  • slice()

變異方法都會影響到數組的原始數據,替換方法不會影響到數組的原始數據他會形成一個新的數組。

修改響應式數據

  • Vue.set(vm.items,indexOfltem,newValue)
  • vm.$set(vm.items,indexOfItem,newValue)

1.參數一表示要處理的數組名稱
2.參數2表示要處理的數組索引
3.參數3表示要處理的數組的值

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

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

相關文章

Symbol類型的作用

在TypeScript&#xff08;和JavaScript&#xff09;中&#xff0c;Symbol 是一個內置對象&#xff0c;它提供了一個唯一的且不可改變的數據類型&#xff0c;用于作為對象的鍵&#xff08;key&#xff09;。這種類型主要用于避免命名沖突&#xff0c;特別是在使用像 for...in 或…

kali更換鏡像源

vim /etc/apt/sources.list.d/docker.list 或 vim /ect/apt/sources.list #清華大學源 deb http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free deb-src https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free #中科大 de…

PID調節常見的問題----積分飽和等問題--參考學習

1&#xff0c; PID控制學習筆記之三—積分的處理 https://zhuanlan.zhihu.com/p/264238608 2&#xff0c;PID控制參數整定&#xff08;調節方法&#xff09;原理圖示MATLAB調試 https://blog.csdn.net/viafcccy/article/details/107988093 3&#xff0c;如何理解PID控制算法中…

Java為什么會成為現在主流的編程語言

Java為什么會成為現在的主流語言 前言一、Java語言概述Java是什么為什么大多數人會選擇從事Java為什么從事Java的工作者數量從年遞減 二、Java語言的特點簡單性面向對象分布式&#xff08;微服務&#xff09;健壯性安全性體系結構中立可移植性解釋型高性能多線程動態性 三、Jav…

UDP多對多組播通信

廣播和多播僅應用于UDP。TCP是一個面向連接的協議&#xff0c;TCP一定是點對點的&#xff0c;一點是兩個主機來建立連接的&#xff0c;TCP肯定是單播。只有UDP才會使用廣播和組播。 如下示例實現一個UDP多對多的組播通信&#xff0c;進程中有收、發兩個線程&#xff0c;分別表…

6款電腦精選工具軟件推薦!

AI視頻生成&#xff1a;小說文案智能分鏡智能識別角色和場景批量Ai繪圖自動配音添加音樂一鍵合成視頻https://aitools.jurilu.com/ 1.IP地址查看工具——純真ip數據庫 純真IP數據庫是一個易于操作的IP地址查詢工具&#xff0c;它允許用戶通過輸入IP地址來查詢其對應的地理位置…

Django創建網站的地基

相關文檔 1、為新網站創建一個文件夾&#xff08;這里是&#xff1a;locallibrary&#xff09; D:\django>mkdir locallibraryD:\django>cd locallibraryD:\django\locallibrary>dirVolume in drive D is 新加卷Volume Serial Number is B68C-03F7Directory of D:\dj…

【Uniapp】簡易封裝提示框showToast/showModal

組件 // 封裝提示框 export const showModal (content, showCancel false, title "提示") > {return new Promise((resolve, reject) > {uni.showModal({title: title,content: content,showCancel: showCancel,success: (res) > {resolve(res);},fail:…

Linux計劃任務功能介紹

一次性計劃任務(不能跨越0點) at 16:20 at> echo hello | wall at> at 1621 at> mkdir /tmp/date %F at> at 16:2212022015 at> rm -fr /tmp/* at> job 33 at 2015-12-02 16:22 atq 查詢計劃任務 atrm 刪除計劃任務 atrm 33 /etc/at.deny 拒絕使用at …

結合多模態 AI 谷歌展示 AR 眼鏡原型機;Meta 被曝開發帶攝像頭的 AI 耳機丨 RTE 開發者日報 Vol.204

開發者朋友們大家好&#xff1a; 這里是 「RTE 開發者日報」&#xff0c;每天和大家一起看新聞、聊八卦。我們的社區編輯團隊會整理分享 RTE&#xff08;Real Time Engagement&#xff09; 領域內「有話題的新聞」、「有態度的觀點」、「有意思的數據」、「有思考的文章」、「…

如何修改android 項目顯示的app名

修改vlaues下的string.xml文件 修改這個標簽中的內容就行

國產銀河麒麟V10SP1系統安裝Qt和MySql步驟

安裝軟件&#xff1a;準備好Kylin-Desktop-V10-SP1-Release-hwe-2107-x86_64.iso和qt-opensource-linux-x64-5.14.2.run 安裝步驟&#xff1a; 1、VMWare軟件中新建一個虛擬機并安裝Kylin-Desktop-V10-SP1-Release操作系統&#xff0c;安裝時候輸入密碼的地方記得要用英文&am…

“網絡安全新紀元:等保2.0的詳細解讀與實踐”

網絡安全等級保護基本要求》&#xff08;等保2.0&#xff09;于2019年6月發布&#xff0c;是我國網絡安全等級保護制度的一項重要標準。等保2.0主要針對關鍵信息基礎設施的網絡安全保護&#xff0c;對數據安全和個人信息保護提出了更高的要求。本文將對等保2.0進行詳細解讀&…

3.深度學習課程--技術棧

上一節我們概覽了深度學習的主要內容及其應用領域&#xff0c;解決了學習的初衷和用途問題。在深入算法和模型之前&#xff0c;本小節將介紹課程所需的技術棧和準備事項。雖然這些準備看似簡單&#xff0c;但它們對于后續學習至關重要。 首先&#xff0c;我們將使用Python作為…

動態路由實驗新手入門:快速掌握核心知識點

大家好&#xff0c;這里是G-LAB IT實驗室。今天帶大家學習一下華為動態路由實驗配置&#xff0c;新手入門&#xff0c;快速掌握核心知識點&#xff01; 01、實驗拓撲 02、實驗需求 1.根據拓撲運行對應的路由協議 2.每個路由器都有自己的環回口&#xff0c;宣告的區域不限制 …

Java各大GPS坐標系互轉算法(保證好用)

不好用來捶我&#xff0c;好用的話點個贊鼓勵一下~ /*** 坐標轉換器*/ public class CoordinateConverter {private static final double x_PI 3.14159265358979324 * 3000.0 / 180.0;private static final double PI 3.1415926535897932384626;private static final double…

IDEA不能創建新項目和新模塊

問題&#xff1a; IDEA不管是創建新項目還是新模塊都創建不成功&#xff0c;會報如下圖錯誤 解決方案&#xff1a; 在電腦設置里搜索 “防火墻和網絡保護” &#xff0c;打開如下圖所示 找到你所安裝的IDEA&#xff0c;更改設置&#xff0c;選中IDEA 最后&#xff0c;確定&am…

香港優才計劃避坑指南及過來人建議,這6種行為會毀了你的香港身份!

香港優才計劃是一項香港人才引進政策&#xff0c;如果你想真正落戶香港&#xff0c;那么就需要了解清楚香港優才從申請到永居的整個流程&#xff0c;并且要注意維護好香港身份。 如果操作不當&#xff0c;可能會中斷你來之不易的香港身份。 本文總結了香港優才整個流程中&…

nmap端口掃描工具——Win10

Nmap安裝流程&#xff1a; Nmap官網鏈接&#xff1a;Download the Free Nmap Security Scanner for Linux/Mac/Windows Nmap參考文檔鏈接&#xff1a;https://nmap.org/book/toc.html Nmap使用流程&#xff1a; Nmap軟件主頁面&#xff1a; 中文版&#xff1a; nmap -T4 -…

脈沖神經網絡(Spiking Neural Networks,SNNs)介紹

脈沖神經網絡&#xff08;Spiking Neural Networks&#xff0c;SNNs&#xff09;是仿生神經網絡的一種類型&#xff0c;它們模仿了生物神經元在大腦中傳遞信息的方式。與傳統的人工神經網絡&#xff08;Artificial Neural Networks&#xff0c;ANNs&#xff09;不同&#xff0c…