来自分类 Vue2024-10-29 16:46:20
### 1. 新建一个 js/ts 文件, 定义好常量 ```ts // design.config.ts /** 设计稿宽度, 此处最好就是按 1920 来计算, 避免 element-ui 之类 UI 框架出现字体不对 */ export const designWidth = 1920 /** 设计稿宽度, 此处最好就是按 1920 来计算, 避免 element-ui 之类 UI 框架出现字体不对 */ export const designHeight = 1080 /** 设计稿倍数 */ export const designMultiple = designWidth / 1920 /** 兼容最小宽度 */ export const minWidth = 1440 /** 兼容最小宽度(px) */ export const minWindow = `${minWidth}Px` /** 为什么设置 100? 设置成便于计算, 计算rem时只需要将 设计稿的宽度 / 100 即可 */ export const fontSize = 100 ``` ### 2. ...
来自分类 Vue2024-01-19 22:36:30
有时候做一个简单的活动页, 使用构建工具显得太大材小用, 或者这个页面需要嵌入后端代码, 这时候我们就可以直接在html文件或者后端模板里写vue代码 直接写在html文件里: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Vue Demo</title> </head> <body> <div id="app"> <div>Your name: {{ data.name }}</div> <div>Your pass: {{ data.pass }}</div> ...
来自分类 Vue2024-01-19 22:36:14
### 1. 在浏览器开发工具中打开控制台 Windows 或 Linux :Ctrl+Shift+J 苹果机:Cmd+Option+J ### 2. 访问Vue应用程序实例 在控制台输入: ```ts const app = Array.from(document.querySelectorAll('*')).find((e) => e.__vue_app__).__vue_app__ ``` app变量将会得一个Vue实例的引用 ![Description](https://php.mmxiaowu.com/upload/202401/20240111155057_KgThhUYM.png) 我们现在可以将应用程序版本存储在一个名为的新变量中version: ```ts const version = app.version ``` ### 3. 访问 Vue Devtools 实例 我们需要访问 Vue Devtools 实例,可通过以下方式访问`window.__VUE_DEVTOOLS_GLOBAL_HOOK__`, 将其存储在一个名为`devtools`的变量中...
来自分类 Vue2024-01-19 22:36:03
如果您需要某个代码块仅在客户端运行,可以使用以下变量`process.client`: ```html <script setup> if (process.client) { // 此代码仅在客户端运行 } </script> ``` 如果您需要某个代码块仅在服务端运行,可以使用以下变量`process.server`: ```html <script setup> if (process. server) { // 此代码仅在服务端运行 } </script> ``` 例如,如果您需要访问`window/document`对象,只能在客户端进行, 那么上面的判断方法将很有用。...
来自分类 Vue2024-01-19 22:35:57
### 代码如下 ```ts export function useAutoScroll(key: string) { // 记录滚动条位置, 这里直接使用Nuxt3自带的useState方法, 使用本地存储, Pinia, Vuex之类都可以 const scrollTop = useState<number>(key) // 离开页面时, 记录滚动条的位置 onBeforeRouteLeave((to, from, next) => { scrollTop.value = Math.max(window.scrollY, document.documentElement.scrollTop, document.body.scrollTop) next() }) // 页面挂载成功后, 恢复滚动条位置 onMounted(() => { console.log('onMounted', scrollTop.value) if (scrollTop.value)...
来自分类 Vue2024-01-19 22:35:02
需求: 将某一列值相同且相连的行合并 1, 模板: ```html <el-table :data="tableData" :span-method="objectSpanMethod"> <el-table-column prop="id" label="ID" width="180"></el-table-column> <el-table-column prop="name" label="姓名"> </el-table-column> <el-table-column prop="amount1" label="数值 1(元)"> </el-table-column> <el-table-column prop="amount2" label="数值 2(元)"> </el-table-column> <el-table-column prop="amount3" label="数值 3(元)"> </el-table-column> </el-table> ``` 2, 数据 ```javascript { data() {...
来自分类 Vue2024-01-19 22:34:40
代码如下: ```javascript // use-lock-fn.js import { ref } from 'vue' // fn 需要增加竞态锁的函数 // autoUnlock === true 不管fn返回什么, 都自动解锁 // autoUnlock === false 不管fn返回什么, 都不自动解锁 // autoUnlock === 'auto' (默认值) 当fn返回false时, 不自动解锁, 返回其他值时, 自动解锁 const useLockFn = (fn = () => {}, autoUnlock = 'auto') => { const lock = ref(false) return async (...args) => { if (lock.value) return lock.value = true try { const $return = await fn(...args) if (autoUnlock === true ...
来自分类 Vue2024-01-19 22:34:32
@[toc] 仓库地址: [https://github.com/lincenying/mmf-blog-vite-vue3](https://github.com/lincenying/mmf-blog-vite-vue3) 访问地址: [https://vue3.mmxiaowu.com](https://vue3.mmxiaowu.com) ## 1. vite 打包时, 一些 css 神秘消失 ### ~~1. 背景图片离奇消失~~ ```css .icon-menu-articles { width: 12px; height: 12px; background-image: url('../images/@1x/menu-articles.png'); } ``` css 中有这么一段样式, 经过 vite 编译后, 背景图片属性消失了, 经过多次测试后, 将图片放到ps编辑后, 重新保存, 好了, 初步判断是vite(也可能是中间某个插件)将图片转成base64时出了问题, 但是图片在之前的 vue-cli 中是正常的, 能正常转成 bas...
来自分类 Vue2024-01-19 22:33:51
@[toc] # 需求: 仿微信聊天 需求很简单, 就是仿微信聊天, 下拉加载历史聊天记录时, 能保持浏览位置, 在网上找了一些例子都不太完美, 要么不能保持浏览位置, 要么会来回跳一下, 反正就是效果不好, 决定还是自己研究研究 # 处理方法 ## template 模板部分 使用 uniapp 自带的`scroll-view`来做滚动容器, 需要配合以下属性: 1. `scroll-y`: 允许纵向滚动 2. `scroll-top`: 设置竖向滚动条位置 3. `upper-threshold`: 距顶部/左边多远时(单位px),触发 scrolltoupper 事件 4. `@scrolltoupper`: 滚动到顶部/左边,会触发 scrolltoupper 事件 5. `scroll-anchoring`: 开启 scroll anchoring 特性,即控制滚动位置不随内容变化而抖动,仅在 iOS 下生效 ```html <scroll-view class="msg-list" scroll-y="true" :scroll-top="...
来自分类 Vue2024-01-19 22:33:37
@[toc] ### 需求 页面中接口, 需要带上用户信息或者是某个鉴权字段, 这个用户信息或者鉴权字段由某个接口返回 ### 原生 Vue 中的处理方法 #### 1.vuex 配置 ```javascript import api from '@/api' const state = { userInfo: null, // 需要的用户数据 globalLoading: true // 一个全局loading, 根据这个字段觉得是否显示一个全局的loading小狗 } const actions = { // 读取用户信息 async ['getUserInfo'](store) { const { commit } = store const { data, code } = await api('/api/user/user_info') if (code === 200) { commit('receiveUserInfo', data) } ...