首页 > 其他分享 >vue项目个人配置

vue项目个人配置

时间:2023-10-11 10:44:07浏览次数:35  
标签:vue const 个人 color 配置 key webkit import store

src/assets/base.css

:root {
  --html-bg-color: #ffffff;
}

html.dark {
  --html-bg-color: #242424;
}

src/assets/reset.css

/**
* Eric Meyer's Reset CSS v2.0 (http://meyerweb.com/eric/tools/css/reset/)
* http://cssreset.com
*/

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed, 
figure, figcaption, footer, header, hgroup, 
menu, nav, output, ruby, section, summary,
time, mark, audio, video{
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  font-weight: normal;
  vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section{
  display: block;
}
ol, ul, li{
  list-style: none;
}
blockquote, q{
  quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after{
  content: '';
  content: none;
}
table{
  border-collapse: collapse;
  border-spacing: 0;
}

/* custom */
a{
  color: #7e8c8d;
  text-decoration: none;
  -webkit-backface-visibility: hidden;
}
::-webkit-scrollbar{
  width: 5px;
  height: 5px;
}
::-webkit-scrollbar-track-piece{
  background-color: rgba(0, 0, 0, 0.2);
  -webkit-border-radius: 6px;
}
::-webkit-scrollbar-thumb:vertical{
  height: 5px;
  background-color: rgba(125, 125, 125, 0.7);
  -webkit-border-radius: 6px;
}
::-webkit-scrollbar-thumb:horizontal{
  width: 5px;
  background-color: rgba(125, 125, 125, 0.7);
  -webkit-border-radius: 6px;
}
html, body{
  width: 100%;
  font-family: 'Microsoft YaHei';
}
body{
  line-height: 1;
  -webkit-text-size-adjust: none;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
html{
  overflow-y: scroll;
}
hr {
  width: 100%;
  margin: 2px 0;
}

/*清除浮动*/
.clearfix:before,
.clearfix:after{
  content: " ";
  display: inline-block;
  height: 0;
  clear: both;
  visibility: hidden;
}
.clearfix{
  *zoom: 1;
}

/*隐藏*/
.dn{
  display: none;
}

src/router/index.ts

import { createRouter, createWebHistory } from "vue-router";

const router = createRouter({
  history: createWebHistory(import.meta.env.BASE_URL),
  routes: [
    {
      path: "/",
      name: "home",
      component: () => import("@/views/home.vue"),
      children: []
    }
  ],
});

export default router;

src/stores/index.ts

import { defineStore } from 'pinia'

export const useStore = defineStore('store', {
  state: () => {
    return {
      x: 0
    }
  },
  getters: {
    double_x(): Number {
      return this.x
    }
  },
  actions: {
    increment() {
      this.x ++
    }
  }
})

src/views/home.view

<template>
  <div class="container">
  </div>
</template>

<script setup lang="ts">
</script>

<style lang="scss" scoped>
.container {
  height: 100%;
  display: flex;
}
</style>

src/App.vue

<template>
  <RouterView></RouterView>
</template>

<script setup lang="ts">
import { RouterView } from "vue-router";
</script>

<style>
html, body, #app {
  height: 100%;
}
#app {
  background-color: var(--html-bg-color);
}
</style>

src/main.ts

import { createApp, toRaw } from "vue";
import { createPinia, type PiniaPluginContext } from "pinia";

import App from "./App.vue";
import router from "./router";

const app = createApp(App);

// global css
import "@/assets/reset.css";
import "@/assets/base.css";

// pinia
const __piniaKey = '__PINIAKEY__'

type Options = {
  key?: string
}

const setStorage = (key: string, value: any): void => {
  localStorage.setItem(key, JSON.stringify(value))
}
const getStorage = (key: string) => {
  return (localStorage.getItem(key) ? JSON.parse(localStorage.getItem(key) as string) : {})
}
const piniaPlugin = (options: Options) => {
  return (context: PiniaPluginContext) => {
    const { store } = context;
    const data = getStorage(`${options?.key ?? __piniaKey}-${store.$id}`)
    store.$subscribe(() => {
      setStorage(`${options?.key ?? __piniaKey}-${store.$id}`, toRaw(store.$state));
    })
    return {
      ...data
    }
  }
}

const store = createPinia()
store.use(piniaPlugin({
  key: 'pinia'
}))

app.use(store);
app.use(router);

app.mount("#app");

标签:vue,const,个人,color,配置,key,webkit,import,store
From: https://www.cnblogs.com/AwangL/p/17756493.html

相关文章

  • macOS Ventura配置ssh/key无效的问题记录
    内容转载自https://cloud.tencent.com/developer/article/2149714此处仅做个人记录问题描述工作电脑是macOSVentura,需要连接gitlab仓库,下载安装git并初始化配置后,按照操作生成SSHkey后,连接远程仓库仍然报错提示Permissiondenied(publickey)。定位问题经过查证,macOS......
  • 将Vue3项目部署到Github Pages
    1.创建vue3项目$npminitvue@latest初始化工程,并验证。2.创建github仓库3.连接vue项目到github仓库打开vue项目根目录,初始化本地git仓库$gitinit$gitadd.$gitcommit-m"init"连接vue项目到第二步创建的github仓库$gitremoteaddoriginhttps://gith......
  • Vue3常用库安装
    目录Pinia引入使用ElementPlus安装完整引入Volar支持按需导入-自动导入unocss&Icon安装unocss安装Icon库使用动态引用图标Iconify安装使用Pinia引入//main.tsimport{createPinia,typePiniaPluginContext}from"pinia";const__piniaKey='__PINIAKEY__'typeOpti......
  • Vue3 + Electron
    https://www.electronjs.org/https://www.electron.build/1.创建一个vue3项目可参考之前的笔记2.安装Electron$npminstallelectron-D$npminstallvite-plugin-electron-D根目录下新建electron/index.ts,修改vite.config.ts配置文件//vite.config.tsimport{......
  • Nginx配置文件中,如何配置启用SignalR
    以下内容包含为SignalR启用WebSocket、ServerSentEvents和LongPolling所需的最低设置:http{map$http_connection$connection_upgrade{"~*Upgrade"$http_connection;defaultkeep-alive;}server{listen80;server_nameexample.com*.......
  • jquery uploadify动态更新配置参数方法uploadifySettings()
    1.使用scriptData给后台传参数的时候,必须声明'method':'GET',因为默认是POST2.$("#uploadify").uploadifySettings('scriptData',{'name':'liudong','age':22});动态更新配置参数$("#uploadify&quo......
  • 使用CEF(六)— 解读CEF的cmake工程配置
    距离笔者的《使用CEF》系列的第一篇文章居然已经过去两年了,在这么长一段时间里,笔者也写了很多其它的文章,再回看《使用CEF(一)—起步》编写的内容,文笔稚嫩,内容单薄是显而易见的(主要是教大家按部就班的编译libcef_dll_wrapper库文件)。笔者一直以来的个性就是希望自己学习到的知识,研究......
  • windbg配置问题汇总(记录)
    .loadbysos.dllmscorwks.symfixc:\windows\symbolswindbg配置问题汇总1、FailedtofindruntimeDLL(clr.dll),0x80004005必须加载正确的.netsos版本0:000>!clrstackFailedtofindruntimeDLL(clr.dll),0x80004005Extensioncommandsneedclr.dllinordert......
  • springboot配置启动文件的问题
    1、缘由:用sh命令启动bat时出现错误端口号就找错了。  原bat。启动时发现端口是8081,但我的application.properties写的不是8081啊,为什么会找8081,原来是因为如果你用bat快捷方式启动,他会在bat目录下,找到propertity文件,如果用sh启动,则找不到propertity文件,这时springboot会默......
  • R语言非线性动态回归模型ARIMAX、随机、确定性趋势时间序列预测个人消费和收入、用电
    全文链接:https://tecdat.cn/?p=33838原文出处:拓端数据部落公众号传统时间序列模型允许包含过去观察到的系列信息,但不允许客户包含其他可能相关的信息。例如,假期的影响、竞争对手的活动、法律变化、整体经济或其他外部变量可能解释了某些历史变动,并且可能导致更准确的预测。另一......