28 lines
931 B
JavaScript
28 lines
931 B
JavaScript
import { createSSRApp } from 'vue'
|
|
import { createPinia } from 'pinia'
|
|
import piniaPluginPersistedstate from 'pinia-plugin-persistedstate'
|
|
import App from './App.vue'
|
|
import audioManager from './audioManager'
|
|
|
|
export function createApp() {
|
|
const app = createSSRApp(App)
|
|
const pinia = createPinia()
|
|
pinia.use(piniaPluginPersistedstate)
|
|
app.use(pinia)
|
|
|
|
/**
|
|
* 全局点击音效工具函数,用于在任意按钮/元素点击时自动播放音效。
|
|
* 用法:@click="$clickSound(handler)" 或 @click="$clickSound(() => doSomething())"
|
|
* @param {Function} handler - 原始点击回调函数(可选,点击时直接调用)
|
|
* @param {string} [soundKey='点击按钮'] - audioManager 中的音效 key
|
|
*/
|
|
app.config.globalProperties.$clickSound = (handler, soundKey = '点击按钮') => {
|
|
audioManager.play(soundKey);
|
|
if (typeof handler === 'function') handler();
|
|
};
|
|
|
|
return {
|
|
app
|
|
}
|
|
}
|