Vue3 基礎(chǔ)難點(diǎn)總結(jié)
本文特別福利,贈(zèng)送JS新書,循序漸進(jìn)Vue.js 3前端開(kāi)發(fā)實(shí)戰(zhàn),規(guī)則見(jiàn)文末~
vue各種各樣的命令和語(yǔ)法的格式容易記混
vue指令-v-model修飾符
語(yǔ)法:
v-model.修飾符="vue數(shù)據(jù)變量"
.number 以parseFloat轉(zhuǎn)成數(shù)字類型 .trim 去除首尾空白字符 .lazy 在失去焦點(diǎn)時(shí)觸發(fā)更改而非inupt時(shí)
計(jì)算屬性
計(jì)算屬性有緩存,提高渲染性能。 如果在頁(yè)面上需要用到 對(duì)現(xiàn)有的數(shù)據(jù)進(jìn)行加工得到新數(shù)據(jù),則時(shí)要使用計(jì)算屬性
普通寫法
computed: {
//屬性名字(計(jì)算屬性名稱)
//屬性的值(計(jì)算屬性處理函數(shù))
計(jì)算屬性名1 () {
// 對(duì)依賴的數(shù)據(jù)進(jìn)行處理,且進(jìn)行return
return
},
復(fù)制代碼
完整寫法
computed: {
"屬性名": {
set(值){
},
get() {
return "值"
}
}
}
復(fù)制代碼
vue監(jiān)聽(tīng)器
可以監(jiān)聽(tīng)數(shù)據(jù)(data/computed等)的值的改變。數(shù)據(jù)的值有類型:基本數(shù)據(jù)類型,引用數(shù)據(jù)類型
深度監(jiān)聽(tīng)
watch: {
"要監(jiān)聽(tīng)的屬性名": {
immediate: true, // 立即執(zhí)行
deep: true, // 深度監(jiān)聽(tīng)復(fù)雜類型內(nèi)變化
handler (newVal, oldVal) {
}
}
}
復(fù)制代碼
scoped實(shí)現(xiàn)組件的私有樣式
<stype scoped>
h2 {} // 樣式只會(huì)在當(dāng)前組件內(nèi)生效
</style>
復(fù)制代碼
父?jìng)髯?/span>

子傳父

vue組件生命周期
四個(gè)階段:
初始化 => 創(chuàng)建組件 => beforeCreate created 掛載 => 渲染顯示組件 => beforeMount mouted 更新 => 修改了變量 => 觸發(fā)視圖刷新 => beforeUpdate updated 銷毀 => 切換頁(yè)面 => 會(huì)把組件對(duì)象從內(nèi)存刪除 => beforeDestory destoryed

組件進(jìn)階-props校驗(yàn)
props: {
// 基礎(chǔ)的類型檢查 (`null` 和 `undefined` 會(huì)通過(guò)任何類型驗(yàn)證)
propA: Number,
// 多個(gè)可能的類型
propB: [String, Number],
// 必填的字符串
propC: {
type: String,
required: true
},
// 帶有默認(rèn)值的數(shù)字
propD: {
type: Number,
default: 100
},
// 帶有默認(rèn)值的對(duì)象
propE: {
type: Object,
// 對(duì)象或數(shù)組默認(rèn)值必須從一個(gè)工廠函數(shù)獲取
default: function () {
return { message: 'hello' }
}
},
// 自定義驗(yàn)證函數(shù)
propF: {
validator: function (value) {
// 這個(gè)值必須匹配下列字符串中的一個(gè)
return ['success', 'warning', 'danger'].indexOf(value) !== -1
}
}
}
復(fù)制代碼
組件進(jìn)階 - 動(dòng)態(tài)組件
<component :is="comName"></component> //comName是變量,值為需要切換的幾個(gè)組件名
復(fù)制代碼
組件進(jìn)階-keep-alive組件
用keep-alive內(nèi)置的vue組件, 讓動(dòng)態(tài)組件緩存而不是銷毀
<keep-alive>
<!-- vue內(nèi)置的組件component, 可以動(dòng)態(tài)顯示組件 -->
<component :is="comName"></component>
</keep-alive>
復(fù)制代碼
組件進(jìn)階-keep-alive組件-指定緩存
語(yǔ)法
`include="組件名1,組件名2..."``:include="['組件名1', '組件名2']"`
<keep-alive include="name1,name2">
<!-- vue內(nèi)置的組件component, 可以動(dòng)態(tài)顯示組件 -->
<component :is="comName"></component>
</keep-alive>
復(fù)制代碼
組件進(jìn)階-具名插槽
格式
定義:<slot name="xxx">
使用:
<template #xxx></template>; <template v-slot:xxx></template>

自定義指令-基本使用
{
data(){},
methods: {},
directives: {
focus: { // 自定義指令名
inserted(el){ // 固定配置項(xiàng) - 當(dāng)指令插入到標(biāo)簽自動(dòng)觸發(fā)此函數(shù)
el.focus()
}
},
},
}
復(fù)制代碼
自定義指令-傳值和更新
目標(biāo): 使用自定義指令, 傳入一個(gè)值
需求: 定義color指令-傳入一個(gè)顏色, 給標(biāo)簽設(shè)置文字顏色
main.js定義處修改一下
directives: {
"color":{
inserted(el, binding){ // 插入時(shí)觸發(fā)此函數(shù)
el.style.color = binding.value;
},
update(el, binding){ // 更新綁定的變量時(shí)觸發(fā)此函數(shù)=》手動(dòng)更新
el.style.color = binding.value;
}
}
}
復(fù)制代碼
Direct.vue處更改一下
<p v-color="theColor" @click="changeColor">使用v-color指令控制顏色, 點(diǎn)擊變藍(lán)</p>
<script>
data() {
return {
theColor: "red",
};
},
methods: {
changeColor() {
this.theColor = 'blue';
},
},
</script>
復(fù)制代碼
總結(jié): v-xxx, 自定義指令, 獲取原生DOM, 自定義操作
axios請(qǐng)求
async loadData(){
const res= await axios.get("http://.......")
// console.log(data);
}
},
created(){
this.loadData()
}
復(fù)制代碼
關(guān)于本文:
來(lái)源:pain_past_is_pleasur
https://juejin.cn/post/7095724314876051492


贈(zèng)書

循序漸進(jìn)Vue.js 3前端開(kāi)發(fā)實(shí)戰(zhàn),這本書以一個(gè)多年前端“老司機(jī)”的視角,循序漸進(jìn)地介紹當(dāng)前流行的前端框架Vue.js 3的新特性、各項(xiàng)功能及其在商業(yè)開(kāi)發(fā)中的應(yīng)用。全書共15章。
第1~6章介紹Vue.js 3的模板、組件、交互處理等基礎(chǔ)知識(shí);
第7章介紹Vue.js 3框架的響應(yīng)式原理及組合式API;
第8章介紹使用Vue.js 3框架開(kāi)發(fā)前端動(dòng)畫效果;
第9章介紹開(kāi)發(fā)大型項(xiàng)目必備的腳手架工具VueCli和Vite;
第10章介紹基于Vue.js 3的UI框架Element Plus;
第11~13章分別介紹網(wǎng)絡(luò)請(qǐng)求框架vue-axios、路由管理框架Vue Router、狀態(tài)管理框架Vuex;
第14章和第15章介紹兩個(gè)相對(duì)完整的項(xiàng)目的開(kāi)發(fā),即學(xué)習(xí)網(wǎng)站和電商后臺(tái)系統(tǒng)。
本書試圖介紹Vue.js 3全家桶及周邊框架和工具的綜合應(yīng)用,旨在使讀者通過(guò)閱讀本書開(kāi)發(fā)自己的應(yīng)用程序。本書還在各章安排了小型范例和練習(xí)題,并提供了教學(xué)視頻、源代碼及PPT課件。
活動(dòng)一:在本文留言,點(diǎn)贊前三名即為中獎(jiǎng)。另在剩下的留言中,按樓層順序隨機(jī)抽一位幸運(yùn)兒。共送四本!
活動(dòng)二:在朋友圈活動(dòng)中點(diǎn)贊,第88樓和188樓分別送出一本
說(shuō)明:兩個(gè)活動(dòng)可重復(fù)參于,朋友圈需掃下面二維碼添加我好友,刷贊取消資格~
開(kāi)獎(jiǎng)時(shí)間:2022年6月26號(hào) 星期天 22:00
歡迎添加我微信號(hào)參與朋友圈活動(dòng)或領(lǐng)獎(jiǎng)或加入技術(shù)交流群:

往期推薦



最后
歡迎加我微信,拉你進(jìn)技術(shù)群,長(zhǎng)期交流學(xué)習(xí)...
歡迎關(guān)注「前端Q」,認(rèn)真學(xué)前端,做個(gè)專業(yè)的技術(shù)人...


