概述< /h1>svelte-webchat一款基於svelte3.x+svelteKit+sass+mescroll.js等技術開發的仿macOs微信聊天界面實例,全新Dock風格菜單/毛玻璃背景虛化效果。
技術棧
- 框架技術:svelte^3.46.5+svelteKit
- 狀態管理:svelte/store
- 下拉刷新:mescroll.js
- iconfont圖標:阿里巴巴字體圖標庫
- 自定義滾動條:svelte-scrollbar
- 自定義彈窗:svelte-layer< /li>
- sass/less預處理:sass^1.50.1+svelte-preprocess
項目結構
預覽版
svelte-webchat一款基於svelte3.x+svelteKit+sass+mescroll.js等技術開發的仿macOs微信聊天界面實例,全新Dock風格菜單/毛玻璃背景虛化效果。
Svelte.js框架
svelte.js一款新的前端框架。 無虛擬DOM、極速響應能力。 start高達58K+。
號稱是比Vue.js還快、語法還精簡、編譯/運行速度還快。
https://github.com/sveltejs/svelte
svelte.config.js配置
配置一些alias路徑、sass預編譯等功能。
import adapter from '@sveltejs/adapter-auto'import path from 'path'import SvelteProcess from 'svelte-preprocess'/** @type {import('@sveltejs/kit').Config} * /const config = { kit: { adapter: adapter(), vite: { resolve: { alias: { '@': path.resolve('./src'), '@assets': path.resolve('./ src/assets'), '@utils': path.resolve('./src/utils') } } } }, // 禁用Svelte 警告未使用的CSS 選擇器(css-unused-selector) onwarn: (warning , handler) => { const { code, frame } = warning if (code === "css-unused-selector") return handler(warning) }, preprocess: SvelteProcess()};export default config;
svelte.js公共佈局模板
svelte.js雖說沒有vue裡面的router -view,但是svelteKit提供了類似的__layout.svelte模板佈局及__error.svelte錯誤頁。
<div class="sv__container flexbox flex-alignc flex-justifyc" style="--themeSkin: {$skin}"> <div class="sv__wrapper" class:maximize={$isWinMaximize }> {#if $userinfo} <div class="sv__board flexbox flex-col"> <!-- <div class="sv__topbar">頂部模塊</div> --> < ;div class="sv__mainwrap flex1 flexbox"> <!-- <div class="sv__sidebar">側邊欄</div> --> <Middle /> <div class=" sv__mainbx flex1 flexbox flex-col"> <Winbar /> <slot /> </div> </div> <Dock /> </div> {:else} <div class ="sv__board flexbox flex-col"> <div class="sv__mainwrap flex1 flexbox"> <slot /> </div> </div> {/if} </div></ div>
__error.svelte錯誤頁
<!-- //Svelte錯誤頁--><script context="module"> export function load({ error, status }) { return { props: { error, status } } }</script><script> import { goto } from '$app/navigation' export let status export let error function goBack() { // history.go(-1) goto('/') }< ;/script><svelte:head> <title>{status} Error!</title></svelte:head><div class="sv__scrollview flex1"> <div class="sv__page- error flexbox flex-col flex-alignc flex-justifyc"> <div class="sv__page-error-img"> <img src="404.png" alt="" /> </div> <div class="sv__page-error-content"> <div class="c-red fs-18">┗| {status} |┛ Page Error~~</div> <div class= "c-999 mt-10">{error.message}</div> <div class="sv__btn sv__btn-default" style="color:#40b3ff;height:32px;width:120px;" on: click={goBack}><i class="iconfont icon-arrL"></i> 返回首頁</div> </div> </div></div>
整個項目,連同彈窗都採用了毛玻璃背景虛化效果。
svelte.js自定義組件
大家看到的彈窗及滾動條均是基於svelte.js自定義組件實現功能。
svelte組件系列:svelte3.x自定義pc端彈窗組件svelteLayer
svelte組件系列:svelte3自定義虛擬滾動條SvelteScrollbar
Okay,使用svelte.js開發桌面PC版聊天實例就先分享這麼多。
歡迎小伙伴們一起留言交流討論哈~~
文章為用戶上傳,僅供非商業瀏覽。發布者:Lomu,轉轉請註明出處: https://www.daogebangong.com/zh-Hant/articles/detail/sveltejs%20web%20version%20chat%20%20sveltesvelteKitsass%20imitation%20WeChat%20chat%20example.html
评论列表(196条)
测试