国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Vue3 知識(shí)第三講】模板語法、Vue3指令

這篇具有很好參考價(jià)值的文章主要介紹了【Vue3 知識(shí)第三講】模板語法、Vue3指令。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一、模板語法

插值表達(dá)式 {{ data }} 可以用于渲染 Vue 中提供的數(shù)據(jù)。

數(shù)字化管理平臺(tái)
Vue3+Vite+VueRouter+Pinia+Axios+ElementPlus
權(quán)限系統(tǒng)-商城
個(gè)人博客地址

<script setup>
    import {ref} from "vue"
    const message = ref("Hello Vue3!!")
    const num = ref(10)
</script>
<template>
  <div class="message">{{message}} ~ {{num + 10}}</div>
  <div>{{ ok ? 'YES' : 'NO' }}</div>
  <div>{{ message.split('').reverse().join('') }}</div>
</template>
<style lang="scss" scoped>
.message {
  color: red;
  font-weight: bold;
  font-family: "楷體","MicroSoft Yahei";
}
</style>

注:vue中的插值提供了真正的js環(huán)境,因此我們可以直接使用 JS 表達(dá)式

二、基礎(chǔ)指令

2.1 概述

  • 指令是什么

    指令就是一個(gè)自定義屬性,Vue中的指令都是以 v- 開頭

  • {{}} 插值表達(dá)式渲染頁面閃爍問題

    代碼加載的時(shí)候先加載 HTML 把插值語法當(dāng)做 HTML 內(nèi)容加載到頁面上 當(dāng)加載完 js 后才把插值語法替換掉 所以我們會(huì)看到閃爍問題

  • v-cloak 指令解決插值語法的閃爍問題

    原理:先隱藏,替換好值之后再顯示最終的值

    //CSS中提供樣式設(shè)置
    [v-cloak] {
    	display: none;
    }
    
    //在插值表達(dá)式標(biāo)簽中添加v-cloak指令
    <div id="app" v-cloak>{{ title }} === {{ num + 10 }}</div>
    

2.2 基礎(chǔ)指令

  • v-text 更新元素的文本內(nèi)容

    v-text 通過設(shè)置元素的 textContent 屬性來工作,因此它將覆蓋元素中所有現(xiàn)有的內(nèi)容。如果想要替換指定的部分內(nèi)容,請使用插值表達(dá)式(mustache interpolations)代替。

    <span v-text="msg"></span>
    <!-- 等同于 -->
    <span>{{msg}}</span>
    
  • v-html 更新元素的 innerHTML

    v-html 的內(nèi)容直接作為普通 HTML 插入—— Vue 模板語法是不會(huì)被解析的。如果你發(fā)現(xiàn)自己正打算用 v-html 來編寫模板,不如重新想想怎么使用組件來代替。

    <p>Using text interpolation: {{ rawHtml }}</p>
    <p>Using v-html directive: <span v-html="rawHtml"></span></p>
    

    在你的站點(diǎn)上動(dòng)態(tài)渲染任意的 HTML 是非常危險(xiǎn)的,因?yàn)樗苋菀讓?dǎo)致 XSS 攻擊。請只對(duì)可信內(nèi)容使用 HTML 插值,絕不要將用戶提供的內(nèi)容作為插值。

  • v-once 僅渲染元素和組件一次,并跳過之后的更新

    執(zhí)行一次性的插值(當(dāng)數(shù)據(jù)改變時(shí),插值處的內(nèi)容不會(huì)繼續(xù)更新)

    應(yīng)用場景:顯示的信息后續(xù)不需要再修改,可以使用 v-once 指令來提高性能

    <!-- 單個(gè)元素 -->
    <span v-once>This will never change: {{msg}}</span>
    <!-- 帶有子元素的元素 -->
    <div v-once>
      <h1>comment</h1>
      <p>{{msg}}</p>
    </div>
    <!-- 組件 -->
    <MyComponent v-once :comment="msg" />
    <!-- `v-for` 指令 -->
    <ul>
      <li v-for="i in list" v-once>{{i}}</li>
    </ul>
    
  • v-pre 跳過該元素及其所有子元素的編譯

    元素內(nèi)具有 v-pre,所有 Vue 模板語法都會(huì)被保留并按原樣渲染。最常見的用例就是顯示原始雙大括號(hào)標(biāo)簽及內(nèi)容。

    <span v-pre>{{ this will not be compiled }}</span>
    

- v-memo 期望的綁定值類型(了解)

Vue3.2版本新增指令。期望的綁定值類型:any[]

緩存一個(gè)模板的子樹。在元素和組件上都可以使用。為了實(shí)現(xiàn)緩存,該指令需要傳入一個(gè)固定長度的依賴值數(shù)組進(jìn)行比較。如果數(shù)組里的每個(gè)值都與最后一次的渲染相同,那么整個(gè)子樹的更新將被跳過。

<div v-memo="[valueA, valueB]">
  ...
</div>

當(dāng)組件重新渲染,如果 valueAvalueB 都保持不變,這個(gè) `` 及其子項(xiàng)的所有更新都將被跳過。實(shí)際上,甚至虛擬 DOM 的 vnode 創(chuàng)建也將被跳過,因?yàn)榫彺娴淖訕涓北究梢员恢匦率褂谩?/p>

正確指定緩存數(shù)組很重要,否則應(yīng)該生效的更新可能被跳過。v-memo 傳入空依賴數(shù)組 (v-memo="[]") 將與 v-once 效果相同。

**v-memo 僅用于性能至上場景中的微小優(yōu)化,應(yīng)該很少需要。**最常見的情況可能是有助于渲染海量 v-for 列表 (長度超過 1000 的情況):

<div v-for="item in list" :key="item.id" v-memo="[item.id === selected]">
  <p>ID: {{ item.id }} - selected: {{ item.id === selected }}</p>
  <p>...more child nodes</p>
</div>

當(dāng)組件的 selected 狀態(tài)改變,默認(rèn)會(huì)重新創(chuàng)建大量的 vnode,盡管絕大部分都跟之前是一模一樣的。v-memo 用在這里本質(zhì)上是在說“只有當(dāng)該項(xiàng)的被選中狀態(tài)改變時(shí)才需要更新”。這使得每個(gè)選中狀態(tài)沒有變的項(xiàng)能完全重用之前的 vnode 并跳過差異比較。注意這里 memo 依賴數(shù)組中并不需要包含 item.id,因?yàn)?Vue 也會(huì)根據(jù) item 的 :key 進(jìn)行判斷。

當(dāng)搭配 v-for 使用 v-memo,確保兩者都綁定在同一個(gè)元素上。v-memo 不能用在 v-for 內(nèi)部。

v-memo 也能被用于在一些默認(rèn)優(yōu)化失敗的邊際情況下,手動(dòng)避免子組件出現(xiàn)不需要的更新。但是一樣的,開發(fā)者需要負(fù)責(zé)指定正確的依賴數(shù)組以免跳過必要的更新。文章來源地址http://www.zghlxwxcb.cn/news/detail-691665.html

<script setup>
	const arr = [1,2,3]
</script>
<template>
	// 這里 v-memo 條件成立的話跳過更新
	<div v-for="item in arr" v-memo="[item == 2]"></div>
</template>

到了這里,關(guān)于【Vue3 知識(shí)第三講】模板語法、Vue3指令的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【vue3】基礎(chǔ)知識(shí)點(diǎn)-setup語法糖

    【vue3】基礎(chǔ)知識(shí)點(diǎn)-setup語法糖

    學(xué)習(xí)vue3,都會(huì)從基礎(chǔ)知識(shí)點(diǎn)學(xué)起。了解setup函數(shù),ref,recative,watch、comptued、pinia等如何使用 今天說vue3組合式api,setup函數(shù) 在學(xué)習(xí)過程中一開始接觸到的是這樣的,定義數(shù)據(jù)且都要通過return返回 最新接觸到的是這樣的 兩種不同的寫法,那區(qū)別是什么呢? 其實(shí)在script標(biāo)簽上直

    2024年02月13日
    瀏覽(18)
  • Vue前端框架08 Vue框架簡介、VueAPI風(fēng)格、模板語法、事件處理、數(shù)組變化偵測

    漸進(jìn)式JavaScript框架,易學(xué)易用,性能出色,適用場景豐富的Web前端框架 功能是構(gòu)建用戶界面 基于標(biāo)準(zhǔn)的HTML、CSS和JavaScript,提供了一套聲明式的、組件化的編程模型,幫助高效得開發(fā)用戶界面 1.1漸進(jìn)式框架 漸進(jìn)式框架:Vue是一個(gè)框架也是一個(gè)生態(tài),功能覆蓋了大部分前端的

    2024年02月09日
    瀏覽(26)
  • 【前端】VUE3使用$ref()糖語法 去除.value

    Reactivity Transform | Vue Macros (sxzz.moe)

    2024年02月12日
    瀏覽(57)
  • #vue3 實(shí)現(xiàn)前端下載excel文件模板功能

    #vue3 實(shí)現(xiàn)前端下載excel文件模板功能

    一、需求: 前端無需通過后端接口,即可實(shí)現(xiàn)模板下載功能。 通過構(gòu)造一個(gè) JSON 對(duì)象,使用前端常用的 第三方庫 xlsx ,可以直接將該 JSON 對(duì)象轉(zhuǎn)換成 Excel 文件,讓用戶下載模板 二、效果: 三、源碼如下:

    2024年01月19日
    瀏覽(127)
  • 若依前端Vue3模板——自定義主題+炫彩主題

    若依前端Vue3模板——自定義主題+炫彩主題

    實(shí)現(xiàn)結(jié)果 實(shí)現(xiàn)步驟 默認(rèn)主題的設(shè)置 文件位置: src/settings.js 布局設(shè)置 圖標(biāo)文件 文件位置: src/assets/images/blue.svg 復(fù)制同級(jí)的 light.svg 修改名稱即可,將兩個(gè)顏色替換為:#409eff 布局組件 文件位置: src/layout/components/Settings/index.vue template模板中添加控件如下 新增一個(gè)主題風(fēng)格選

    2024年02月14日
    瀏覽(61)
  • csdn新星計(jì)劃vue3+ts+antd賽道——利用inscode搭建vue3(ts)+antd前端模板

    csdn新星計(jì)劃vue3+ts+antd賽道——利用inscode搭建vue3(ts)+antd前端模板

    大家好,我是yma16,本文分享利用inscode搭建vue3(ts)+antd前端模板。 2023 新星計(jì)劃 vue(ts)+antd賽道報(bào)名入口:https://bbs.csdn.net/topics/616574177 搭建vue3+ts+antd的指引:認(rèn)識(shí)vite_vue3 初始化項(xiàng)目到打包 InsCode 是一個(gè)一站式的軟件開發(fā)服務(wù)平臺(tái),從開發(fā)-部署-運(yùn)維-運(yùn)營,都可以在 InsCode 輕松

    2024年02月16日
    瀏覽(22)
  • Vue3+SpringBoot快速開發(fā)模板

    Vue3+SpringBoot快速開發(fā)模板

    起因:個(gè)人開發(fā)過程經(jīng)常會(huì)使用到Vue3+SpringBoot技術(shù)棧來開發(fā)項(xiàng)目,每次在項(xiàng)目初始化時(shí)都需要涉及一些重復(fù)的整理工作,于是結(jié)合一些個(gè)人覺得不錯(cuò)的前后端模板進(jìn)行整合,打通一些大多數(shù)項(xiàng)目都需要的實(shí)現(xiàn)的基礎(chǔ)功能,以便于快速開發(fā)項(xiàng)目。代碼已按個(gè)人力所能及的規(guī)范編

    2024年02月14日
    瀏覽(25)
  • 前端Vue3框架知識(shí)點(diǎn)大全

    Vue.js是一種流行的JavaScript前端框架,它的第三個(gè)版本Vue3帶來了許多令人興奮的新特性和改進(jìn)。 1、響應(yīng)式數(shù)據(jù) : Vue 3采用了基于Proxy的響應(yīng)式系統(tǒng),相比Vue 2中的Object.defineProperty,Proxy提供了更強(qiáng)大和靈活的攔截器,可以捕獲對(duì)象的各種操作。這使得Vue 3的響應(yīng)式系統(tǒng)更加高效

    2024年02月11日
    瀏覽(26)
  • Vue3+Vite前端知識(shí)匯總1篇

    Vue3+Vite前端知識(shí)匯總1篇

    ?? 目錄 1、設(shè)置package.json,讓編譯完成后自動(dòng)打開瀏覽器。 2、設(shè)置vite.config.ts,設(shè)置src別名,后面就不用 ../../../ 了。 3、安裝@types/node? 解決vscode顯示紅波浪線問題。 ?4、安裝 sass和reset.css 5、創(chuàng)建并引入全局組件,HospitalTop 6、安裝路由,并添加切換路由后滾動(dòng)到頂部功能

    2024年02月16日
    瀏覽(57)
  • Vue3前端100個(gè)必要的知識(shí)點(diǎn)

    Vue3前端100個(gè)必要的知識(shí)點(diǎn)

    為什么是必要的,就是這100個(gè)知識(shí)點(diǎn)學(xué)完后,能獨(dú)立完成一個(gè)小項(xiàng)目。最終能得到一個(gè)解決方案。也算是前端知識(shí)的積累。如果后面有需要的地方可以回來查。100個(gè)其實(shí)比較多,我會(huì)按新手老鳥,大神來分成3個(gè)等級(jí),話不多說,讓我們開始吧。 ? ? 目錄 1、一些常用的依賴。

    2024年02月06日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包