样式 播放器 音乐vue

Vue插槽(Slot)的实现原理

实现原理(简单文字) slot 又名插槽,是 Vue 的内容分发机制,组件内部的模板引擎使用 slot 元素作为承载分发内容的出口。插槽 slot 是子组件的一个模板标签元素,而这一个标签元素是否显示,以及怎么显示是由父组件决定的。slot 又分三类,默认插槽,具名插槽和作用域插槽 实现原理:当子组 ......
原理 Slot Vue

Vue3 模板引用 ref 的实现原理

什么是模板引用 ref ? 有时候可以使用 ref attribute 为子组件或 HTML 元素指定引用 ID。 <template> <input ref="input" /> </template> <script> import { defineComponent, ref } from " ......
原理 模板 Vue3 Vue ref

Vue2 keep-alive实现原理

Vue.js 内部将 DOM 节点抽象成了一个个的 VNode 节点,keep-alive 组件的缓存也是基于 VNode 节点的而不是直接存储 DOM 结构。它将满足条件(pruneCache 与 pruneCache)的组件在 cache 对象中缓存起来,在需要重新渲染的时候再将 vnode 节 ......
keep-alive 原理 alive Vue2 keep

Vue3 的 effect、 watch、watchEffect 的实现原理

所谓 watch,就是观测一个响应式数据或者监测一个副作用函数里面的响应式数据,当数据发生变化的时候通知并执行相应的回调函数。 Vue3 最新的 watch 实现是通过最底层的响应式类 ReactiveEffect 的实例化一个 reactive effect 对象来实现的。它的创建过程跟 effe ......
watchEffect 原理 effect watch Vue3

Vue $nextTick原理

作用:vue 更新 DOM 是异步更新的,数据变化,DOM 的更新不会马上完成,nextTick 的回调是在下次 DOM 更新循环结束之后执行的延迟回调。 实现原理:nextTick 主要使用了宏任务和微任务。根据执行环境分别尝试采用 Promise:可以将函数延迟到当前函数调用栈最末端 Mutat ......
nextTick 原理 Vue

vue路由通过props传参

方式一:布尔模式 方法一:直接传参 路由配置: { path: '/user/:id/:price', name: 'User', component: User, props: true } 页面 A <template> <div> <router-link :to="{ name: 'User ......
路由 props vue

vue组件递归

这样的场景:渲染列表数据的时候,列表的子项还是列表。如果层级少尚且可以用几个 for 循环搞定,但是层级多或者层级不确定就有点无从下手了。 其实这就是树形结构数据,像常见的组织架构图,文件夹目录,导航菜单等都属于这种结构。很多组件库都带有树形组件,但往往样式不是想要的,改起来也非常的费劲。那么,如何 ......
组件 vue

vue2为什么只重写了7个数组方法

首先看源码 //即将要被劫持的数组 let arr = [1, 2, 3]; //先把要劫持的方法列出来 let methods = ["push", "pop", "shift", "unshift", "reverse", "sort", "splice"]; //既然要劫持原型,就要先把原型拿 ......
个数 方法 vue2 vue

vue2.0源码简读(5. 扩展)

5.1 event 平时开发工作中,处理组件间的通讯,原生的交互,都离不开事件。对于一个组件元素,不仅仅可以绑定原生的 DOM 事件,还可以绑定自定义事件,非常灵活和方便。那么接下来从源码角度来看看它的实现原理。 为了更加直观,通过一个例子来分析它的实现: let Child = { templat ......
源码 vue2 vue

vue2.0源码简读(7. Vuex)

7.1 Vuex 初始化 这一节主要来分析 Vuex 的初始化过程,它包括安装、Store 实例化过程 2 个方面。 安装 当在代码中通过 import Vuex from 'vuex' 的时候,实际上引用的是一个对象,它的定义在 src/index.js 中: export default { S ......
源码 vue2 Vuex vue

vue中created、watch和computed的执行顺序

总结 关于 vue 中 created 和 watch 的执行顺序相对比较简单,而其中 computed 是通过 Object.defineProperty 为当前 vm 进行定义,再到后续创建 vNode 阶段才去触发执行其 get 函数,最终执行到计算属性 computed 对应的逻辑。 官网的 ......
顺序 computed created watch vue

vue2.0源码简读(6. Vue Router)

6.1 路由注册 Vue 从它的设计上就是一个渐进式 JavaScript 框架,它本身的核心是解决视图渲染的问题,其它的能力就通过插件的方式来解决。Vue-Router 就是官方维护的路由插件,在介绍它的注册实现之前,先来分析一下 Vue 通用的插件注册原理。 Vue.use Vue 提供了 Vu ......
源码 Router vue2 vue Vue

vue2.0源码简读(4. 深入响应式原理)

4.1 响应式对象 Object.defineProperty Object.defineProperty 方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性, 并返回这个对象,先来看一下它的语法: Object.defineProperty(obj, prop, descriptor ......
源码 原理 vue2 vue

vue2.0源码简读(3. 组件化)

3.1 createComponent 在分析 createElement 的实现的时候,它最终会调用 _createElement 方法,其中有一段逻辑是对参数 tag 的判断,如果是一个普通的 html 标签,上一章的例子那样是一个普通的 div,则会实例化一个普通 VNode 节点,否则通过 ......
组件 源码 vue2 vue

vue2.0源码简读(1. 准备工作)

1.1 认识 Flow Flow 是 facebook 出品的 JavaScript 静态类型检查工具。Vue.js 的源码利用了 Flow 做了静态类型检查,所以了解 Flow 有助于阅读源码。 为什么用 Flow JavaScript 是动态类型语言,它的灵活性有目共睹,但是过于灵活的副作用是很 ......
源码 vue2 vue

vue2.0源码简读(2. 数据驱动)

2.1 new Vue 发生了什么 从入口代码开始分析,先来分析 new Vue 背后发生了哪些事情。new 关键字在 Javascript 语言中代表实例化是一个对象,而 Vue 实际上是一个类,类在 Javascript 中是用 Function 来实现的,来看一下源码,在 src/core/i ......
源码 数据 vue2 vue

vue3 设置跨域

changeOrigin 必须设置成 false const { defineConfig } = require('@vue/cli-service'); module.exports = defineConfig({ transpileDependencies: true, devServer: ......
vue3 vue

vue+pdfh5实现将pdf渲染到页面上

版本:pdfh5@1.4.7 vue2+.net Core 6.0webapi 方法一:通过访问后端获取二进制数据来渲染 前端渲染 <template> <vol-box ref="box" :width="width" :height="height"> <div id="demo" ref="r ......
页面 pdfh5 pdfh vue pdf

vue3 使用 store

在script 中使用store https://blog.csdn.net/SubStar/article/details/116077737 <script> import { getCurrentInstance } from "vue"; import { useStore } from " ......
store vue3 vue

vue本地开发的时候自定义域名端口

找到如下文件 以记事本方式打开并插入以下代码 127.0.0.1 localhost127.0.0.1 test.hhProject.com # 将此域名指向127.0.0.1本地环境 再在项目的配置文件中配置域名和端口即可 export default defineConfig({ plugins ......
定义域 端口 时候 vue

Django+Vue.js - 第一章 走进Django

目录第一章 走进Django了解DjangoMVCMTV安装创建项目创建app处理控制器 第一章 走进Django 了解Django Django 诞生于2003年,在2006年加入BSD许可协议,成为开源Web框架 优势 功能完善,容易上手,开发速度快,安全性强; 完善的在线文档; 模型自带数据库 ......
Django Vue js

Vue3 Pinia对state的订阅监听($subscribe,$onAction)数据监听

<template> <div class="main-container" :class="{'show-scroll':targetIsVisible}"> <div :style="{height:frameHeight+'px'}" class="main-content" :class=" ......
subscribe onAction 数据 Pinia state

vue pinia sessionstorage 数据存储不上的原因

vue pinia sessionstorage 的坑 默认的配置是开始 localStorage 如果用 sessionstorage 则发现数据存储不上 ,是因为缺少了序列化和反序列化 import { parse, stringify } from 'zipson' export const ......
sessionstorage 原因 数据 pinia vue

vue2 项目打包后自动压缩成zip文件

安装依赖 1 pnpm install filemanager-webpack-plugin --save-dev 在vue.config.js中添加如下代码 const FileManagerPlugin = require('filemanager-webpack-plugin')//引入插件 ......
文件 项目 vue2 vue zip

Vue 中 slot 的使用方式,以及 slot 作用域插槽的作用 ?

使用方式 组件当做标签进行使用的时候,用 slot 可以用来接受组件标签包裹的内容,当给 slot标签添加 name 属性的时候,可以调换响应的位置 插槽作用域 作用域插槽其实就是带数据的插槽,父组件接收来自子组件的 slot 标签上通过 v-bind 绑定进而传递过来的数据,父组件通过 scope ......
作用 slot 方式 Vue

vue项目index.html文件获取代理地址方法(ajax在html文件请求接口)

获取代理地址的方式 <%= process.env.VUE_APP_BASE_API %> 其中 process.env.VUE_APP_BASE_API是代理地址 <script> ajax("<%= process.env.VUE_APP_BASE_API %>/system/config/ge ......
文件 html 接口 地址 方法

使用js添加按钮,vue页面 el-calendar 添加自定义按钮

html代码: <div class="schedule"> <div class="title"> 今 日 日 程 </div> <div class="allSchedule"> <el-row class="addSchedule" type="flex" align="middle"> <e ......
按钮 el-calendar calendar 页面 vue

vue2 前后端分离的项目,用宝塔部署,出现域名访问根目录能访问,加任何网址就404

https://admin.xxx.com/ 访问正常 https://admin.xxx.com/index 访问404 location / { root /home/ruoyi/projects/ruoyi-ui; try_files $uri $uri/ /index.html; index ......
宝塔 根目录 网址 域名 项目

uniapp微信小程序图片裁剪插件,支持自定义尺寸、定点等比例缩放、拖动、图片翻转、剪切圆形/圆角图片、定制样式

uniapp微信小程序图片裁剪插件,支持自定义尺寸、定点等比例缩放、拖动、图片翻转、剪切圆形/圆角图片、定制样式,功能多性能高体验好注释全。 1.效果预览: 5.引入插件 项目代码:Homilier / qf-image-cropper · GitCode 使用HBuilder X导入项目 :图片裁 ......
图片 圆角 定点 圆形 样式

vue2和vue3ref的区别(详解)

Vue 2和Vue 3中ref的区别如下: 在Vue 2中,ref主要用于在模板中获取DOM元素或组件实例。而在Vue 3中,虽然ref也可以获取DOM元素或组件实例,但更重要的是,它还可以将一个基本类型的变量转换成响应式的数据,无需再通过复杂的步骤来访问响应式数据。另外,Vue 3的ref还支持对 ......
vue vue3ref vue2 3ref vue3