最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue3使用contenteditable打造定制化輸入

 更新時間:2023年12月08日 09:00:09   作者:coderzry  
contenteditable 屬性為網(wǎng)頁開發(fā)者提供了一種靈活的方式來創(chuàng)建可編輯的內(nèi)容區(qū)域,使用戶可以直接在網(wǎng)頁上進行內(nèi)容編輯,而無需依賴傳統(tǒng)的輸入框,本文將利用contenteditable打造定制化輸入,感興趣的可以了解下

定義

全局屬性 contenteditable 是一個枚舉屬性,表示元素是否可被用戶編輯。如果可以,瀏覽器會修改元素的組件以允許編輯。

該屬性必須是下面的值之一:

  • true 或空字符串,表示元素是可編輯的。
  • false 表示元素不是可編輯的。
  • plaintext-only 表示元素的原始文本是可編輯的,但富文本格式會被禁用。 contenteditable 是一個 HTML 屬性,可以應(yīng)用于 HTML 元素,使其成為可編輯的區(qū)域。通過使用 contenteditable 屬性,可以實現(xiàn)在網(wǎng)頁中編輯文本內(nèi)容的功能,類似于在富文本編輯器中進行編輯。

主要特點

可以實現(xiàn)富文本編輯功能,包括插入圖片、編輯文字樣式(如加粗、斜體、下劃線等)、創(chuàng)建鏈接等。

允許用戶在網(wǎng)頁中直接編輯文本內(nèi)容,而無需使用表單輸入框或富文本編輯器。

可以與 JavaScript 事件結(jié)合使用,如input事件、keydown事件等,以便在用戶輸入時進行相應(yīng)的處理。

項目實戰(zhàn)

最近遇到一個需求,要求表格的內(nèi)容可編輯,項目使用的 vue3.2 版本。其實這個需求使用input也可以實現(xiàn),但是還得各種覆蓋樣式,很早之前也聽說過contenteditable這個屬性,這次正好借機體驗一下,廢話不多說,直接封裝一個組件。

template 部分

<template>
  <span contenteditable :innerHTML="content" @input="updateContent" class="custom-contenteditable"></span>
</template>

Js部分

<script setup>
import { ref, watch } from 'vue';
const props = defineProps(['content']);
const emit = defineEmits(['update:content']);
?
const content = ref(props.content);
?
const updateContent = (event) => {
  event.target.innerText = event.target.innerText.replace(/\D/g, ''); // 過濾非數(shù)
  content.value = event.target.innerText;
  emit('update:content', Number(event.target.innerText));
};
?
watch(() => props.content, (newValue) => {
  content.value = newValue;
});
</script>

CSS 部分

<style lang="scss" scoped>
.custom-contenteditable {
  box-sizing: border-box;
  border: 1px solid transparent;
  &:focus {
    outline: 0px;
    border: 1px solid rgb(24, 144, 255) !important;
  }
?
  &:hover {
    border: 1px dashed #aaaaaa;
    transition: all .5s;
  }
}
</style>

組件使用

<ContentEditable v-model:content="item.data" />

最終實現(xiàn)效果

可以看到,加上一些樣式還是很絲滑的,由于需求原因,只能輸入數(shù)字,因此在@input事件中將輸入值過濾了一遍。如果需要其他格式的,可以對組件進一步封裝,拓展對應(yīng)的props即可。

注意事項

在使用時需要格外小心,因為用戶可以在可編輯區(qū)域中插入任意 HTML 和 JavaScript 代碼,可能導致安全風險。

因為瀏覽器對 contenteditable 的實現(xiàn)可能存在差異,因此在跨瀏覽器兼容性方面需要注意。

其他適用場景

  • 富文本編輯器
  • 內(nèi)容管理系統(tǒng)
  • 用戶自定義頁面
  • 電子郵件編輯

瀏覽器兼容性

到此這篇關(guān)于Vue3使用contenteditable打造定制化輸入的文章就介紹到這了,更多相關(guān)Vue3 contenteditable內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue.js通過路由實現(xiàn)經(jīng)典的三欄布局實例代碼

    vue.js通過路由實現(xiàn)經(jīng)典的三欄布局實例代碼

    本文通過實例代碼給大家介紹了vue.js通過路由實現(xiàn)經(jīng)典的三欄布局,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧
    2018-07-07
  • Vue基礎(chǔ)語法知識梳理上篇

    Vue基礎(chǔ)語法知識梳理上篇

    這篇文章主要介紹了Vue基礎(chǔ)語法知識梳理,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-12-12
  • Vue中對象數(shù)組改變其對象內(nèi)容值數(shù)組沒變化的原因與解決方案

    Vue中對象數(shù)組改變其對象內(nèi)容值數(shù)組沒變化的原因與解決方案

    最近開發(fā)遇到一個問題,修改對象某一個索引對象時,直接將對象賦值給數(shù)組的某一索引對象,該數(shù)組沒變化,在 Vue 中,直接修改對象數(shù)組中某個對象的屬性值時,數(shù)組的引用本身未改變,本文介紹了詳細的原理分析和解決方案,需要的朋友可以參考下
    2025-03-03
  • vue.js購物車添加商品組件的方法

    vue.js購物車添加商品組件的方法

    這篇文章主要介紹了vue.js購物車添加商品組件的方法,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-09-09
  • Vue3中shallowRef和shallowReactive的性能優(yōu)化

    Vue3中shallowRef和shallowReactive的性能優(yōu)化

    Vue3中shallowRef和shallowReactive是淺層響應(yīng)式API,用于性能優(yōu)化,僅追蹤對象或數(shù)組第一層屬性的變化,本文就來詳細的介紹一下具體的使用,感興趣的可以了解一下
    2024-09-09
  • vue3之聲明式和編程式導航詳解

    vue3之聲明式和編程式導航詳解

    這篇文章主要介紹了vue3之聲明式和編程式導航,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Vue3.x項目開發(fā)的一些常用知識點總結(jié)

    Vue3.x項目開發(fā)的一些常用知識點總結(jié)

    目前Vue3.0是會兼容大部分2.x的語法,下面這篇文章主要給大家介紹了關(guān)于Vue3.x項目開發(fā)的一些常用知識點,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-05-05
  • Vue mixin實現(xiàn)組件功能復用示例詳解

    Vue mixin實現(xiàn)組件功能復用示例詳解

    這篇文章主要為大家介紹了Vue mixin實現(xiàn)組件功能復用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-10-10
  • vue單頁應(yīng)用的內(nèi)存泄露定位和修復問題小結(jié)

    vue單頁應(yīng)用的內(nèi)存泄露定位和修復問題小結(jié)

    系統(tǒng)進程不再用到的內(nèi)存,沒有及時釋放,就叫做內(nèi)存泄漏(memory leak)。這篇文章主要介紹了vue單頁應(yīng)用的內(nèi)存泄露定位和修復,需要的朋友可以參考下
    2019-08-08
  • vite插件打包更順暢使用技巧示例

    vite插件打包更順暢使用技巧示例

    這篇文章主要為大家介紹了vite插件打包更順暢的使用技巧示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06

最新評論

利辛县| 互助| 郓城县| 新民市| 巴东县| 疏附县| 盖州市| 涞水县| 运城市| 威海市| 枝江市| 巴里| 嘉善县| 吉木乃县| 峨眉山市| 涪陵区| 元谋县| 新巴尔虎左旗| 四子王旗| 壶关县| 黄陵县| 吉林省| 高青县| 甘肃省| 长宁县| 富民县| 嘉黎县| 莆田市| 余庆县| 宁津县| 梁平县| 贡嘎县| 钟山县| 岫岩| 永安市| 岳池县| 大连市| 西乌珠穆沁旗| 呼玛县| 多伦县| 禄丰县|