国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

商務(wù)網(wǎng)站建設(shè)的步驟網(wǎng)站建設(shè)制作免費

商務(wù)網(wǎng)站建設(shè)的步驟,網(wǎng)站建設(shè)制作免費,臨沂專門做網(wǎng)站的,seo優(yōu)化的網(wǎng)站即然是個人博客,那么絕對不能丟給自己一個大大的輸入框敷衍了事。如果真是這樣,現(xiàn)在就可以宣布項目到此結(jié)束了。如今沒人享受用輸入框?qū)懖┛?。作為一個有追求的程序員,作品就要緊跟潮流。 后來,Markdown 的崛起逐步改變了大家的排…

即然是個人博客,那么絕對不能丟給自己一個大大的輸入框敷衍了事。如果真是這樣,現(xiàn)在就可以宣布項目到此結(jié)束了。如今沒人享受用輸入框?qū)懖┛汀W鳛橐粋€有追求的程序員,作品就要緊跟潮流。

后來,Markdown 的崛起逐步改變了大家的排版方式。再加上我們其他幾個項目都是面向程序員用戶的,所以遷移到 md 上也是大勢所趨。 ——Vditor文檔

給個人博客嵌入MarkDownb編輯器,即便設(shè)備上沒有支持MarkDown格式的文本編輯器,我們?nèi)匀荒茈S時隨地優(yōu)雅的編寫博客。這里的MarkDown組件,選擇了Vditor,由思源筆記團(tuán)隊開源的瀏覽器端 Markdown 編輯器,MIT開源協(xié)議(幾乎是最為寬松的開源協(xié)議),感謝思源團(tuán)隊的無私分享。
在這里插入圖片描述
為了讓我們的博客有良好的編輯和閱讀體驗,需要做兩件工作:

  1. 封裝Vditor編輯器組件
  2. 封裝Vditor預(yù)覽器組件
    ps: 做好黑夜模式適配

在 src/components/目錄下創(chuàng)建MarkDownEdit.vue、MarkDownRead.vue

封裝Vditor編輯器組件

MarkDownEdit.vue

因為Vditor的初始化完成后,vue無法監(jiān)聽到Vditor對象內(nèi)參數(shù)的變化,所以我們需要用一些小技巧來告訴框架刷新狀態(tài),以完成黑夜模式的變化。創(chuàng)建一個computed參數(shù)active,讓其計算被pinia托管的參數(shù)active,一旦active變化,則調(diào)用setTheme()方法設(shè)置 主題。
這里先設(shè)置pinia
在src/stores/目錄下創(chuàng)建themeSwitch.js,內(nèi)容如下

import { ref, computed } from 'vue'
import { defineStore } from 'pinia'export const useThemeSwitch = defineStore('themeSwitch', () => {const active = ref(false)function changeActive(newActive){this.active = newActive}return { active, changeActive }
})

然后編寫MarkDownEdit.vue

  <script setup >import { ref, onMounted,computed } from 'vue';import Vditor from 'vditor';import 'vditor/dist/index.css';const vditor = ref(null);const props = defineProps(['active'])const active = computed({get(){if(vditor.value!=null){console.log(props.active)const mode = props.active?'dark':'classic'vditor.value.setTheme(mode,mode)}return props.active;},})let content = ''let width = 0;let height = 0;function ReInitVidor() {width = window.innerWidth*0.92  < 600 ? 600 : window.innerWidth*0.92 ;height = window.innerHeight * 0.9;vditor.value = new Vditor('vditor', {mode:'sv',preview:{},icon:'material',height:height,width:width,placeholder:"君子藏器于身,待時而動",counter:{enable:true,},preview:{actions:[]},input:(value) => {content = value},after: () => {// vditor.value is a instance of Vditor now and thus can be safely used herevditor.value.setValue(content);},});}onMounted(() => {window.addEventListener('resize', ReInitVidor)ReInitVidor();});</script>
<template><div style="display: flex;flex-direction: row;justify-content: center;"><!-- 一定要在html的部分插入active,vue框架才會去真正監(jiān)聽并計算active參數(shù)--><div hidden>active: {{ active }}</div><div id="vditor" ></div></div></template>

封裝Vditor預(yù)覽器組件

<template><div><div hidden>{{active}} </div><div id="vditor" ></div></div></template><script setup >import { onMounted,computed, } from 'vue';import Vditor from 'vditor';import 'vditor/dist/index.css';const props = defineProps(['active'])let active = computed({get(){return props.active;},})const IPreviewOptions = {theme:{current:props.active?"dark":"light"},mode:"dark",speech:{"enable":true}}const mdStr=`## 💡 簡介[Vditor](https://b3log.org/vditor) 是一款瀏覽器端的 Markdown 編輯器,支持所見即所得(富文本)、即時渲染(類似 Typora)和分屏預(yù)覽模式。它使用 TypeScript 實現(xiàn),支持原生 JavaScript、Vue、React、Angular,提供[桌面版](https://b3log.org/siyuan)。`function ReInitVidor() {Vditor.preview(document.getElementById('vditor'),mdStr,IPreviewOptions);}onMounted(() => {addEventListener("resize",ReInitVidor)ReInitVidor();});</script>

使用組件

在src/views/目錄下創(chuàng)建BlogEditView.vue、BlogReadView.vue文件

BlogEditView.vue
<script setup>import MarkDownEdit from '../components/MarkDownEdit.vue';import { useThemeSwitch } from '../stores/themeSwitch';const themeSwitcher = useThemeSwitch()
</script><template><mark-down-edit :active="themeSwitcher.active"></mark-down-edit>
</template>
BlogReadView.vue

因為vditor.preview沒有提供setTheme這種好用的函數(shù)。所以我們在active值改變后,要告訴vue框架強制刷新組件。這里使用:key=“”參數(shù),組件會監(jiān)聽key參數(shù)是否變化,變化則刷新組件。

<script setup>import MarkDownRead from '../components/MarkDownRead.vue';import { NSpace } from 'naive-ui';import { useThemeSwitch } from '../stores/themeSwitch';const themeSwitcher = useThemeSwitch()
</script>
<template><n-space         style="height: 100%;" justify="center" size="large"><mark-down-read class="blog-read-preview" :key="themeSwitcher.active" :active="themeSwitcher.active"></mark-down-read></n-space>
</template><style>
.blog-read-preview{margin-inline: 15vw;max-width: 900px;
}
</style>

最終效果

編輯器

在這里插入圖片描述在這里插入圖片描述

預(yù)覽器

在這里插入圖片描述

在這里插入圖片描述

暫時的休息

當(dāng)前只是一種簡單的封裝,方便組織前端代碼結(jié)構(gòu),在實現(xiàn)功能時,會按需進(jìn)一步修改相關(guān)代碼。

http://aloenet.com.cn/news/44766.html

相關(guān)文章:

  • 好的網(wǎng)站怎么建設(shè)長沙網(wǎng)絡(luò)推廣服務(wù)
  • 重慶網(wǎng)站建設(shè)最大水果網(wǎng)絡(luò)營銷推廣方案
  • 北京網(wǎng)站建設(shè)工作室哪家好正規(guī)營銷培訓(xùn)
  • php網(wǎng)站開發(fā)外包百度網(wǎng)盤app手機版
  • 網(wǎng)站建設(shè)騰訊課堂網(wǎng)站推廣如何引流
  • 百度網(wǎng)盟推廣案例鎮(zhèn)江百度關(guān)鍵詞優(yōu)化
  • 如何自己用wordpress建網(wǎng)站黑龍seo網(wǎng)站優(yōu)化
  • 寧波專業(yè)平臺網(wǎng)站建設(shè)網(wǎng)絡(luò)推廣公司專業(yè)網(wǎng)絡(luò)
  • 給個網(wǎng)站可以在線做企業(yè)推廣的公司
  • 好的設(shè)計師網(wǎng)站有哪些友情鏈接搜讀
  • 微信在線使用登錄進(jìn)一步優(yōu)化落實
  • 有哪些好用的網(wǎng)站微信小程序開發(fā)費用一覽表
  • 中山做網(wǎng)站建設(shè)聯(lián)系電話中國公關(guān)公司前十名
  • 學(xué)校網(wǎng)站建設(shè)畢業(yè)論文企業(yè)網(wǎng)絡(luò)營銷案例
  • 萍鄉(xiāng)建站公司微信推廣
  • 合肥網(wǎng)站關(guān)鍵詞推廣業(yè)務(wù)推廣公司
  • 做商城網(wǎng)站要什么手續(xù)費百度關(guān)鍵詞搜索指數(shù)查詢
  • 軟件測試員是干什么的優(yōu)化
  • 廣州上宏網(wǎng)站建設(shè)汽車行業(yè)網(wǎng)站建設(shè)
  • 企業(yè)網(wǎng)站設(shè)計的深圳公司營銷策劃
  • 什么是企業(yè)網(wǎng)站策劃案網(wǎng)店推廣的作用是什么
  • 做網(wǎng)站服務(wù)怎么賺錢2022最近比較火的營銷事件
  • 做網(wǎng)站工作室找客戶難看seo
  • 甜品網(wǎng)站設(shè)計思想文章代寫
  • 上海網(wǎng)站建設(shè)的重慶seo優(yōu)化效果好
  • 哪些網(wǎng)站做裝修外鏈群發(fā)
  • 長春網(wǎng)站制作優(yōu)勢吉網(wǎng)傳媒寧德市
  • 做一公司網(wǎng)站上優(yōu)化seo
  • 自建站多少錢寧波免費建站seo排名
  • 北京常用網(wǎng)站seo點擊排名軟件哪里好