自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 跨文件获取本地数据

方法第一行括号中的路径根据个人的需求进行修改,需要注意的是,?callback=data,这里callback后面等于的就是你在.data文件中定义的函数,名称保持一致即可。需要注意的是script.src后面的文件名字,也就是路径,需要自己对应好。在此可以直接复制代码,需要做的操作就是调用getData方法。应该看得懂吧,看不懂就直接复制,修改return中的数据即可。再看js中的访问方式(此时我引用了vue的外部依赖)在此,(‘’)中的内容可以为任何形式。...

2022-07-17 11:46:58 674

原创 Vuex状态管理器——vuex基本用法

Vue 最核心的两个功能:数据驱动和组件化。 组件化开发给我们带来了: 更快的开发效率 更好的可维护性 每个组件都有自己的状态、视图和行为等组成部分。 状态管理包含以下几部分: state,驱动应用的数据源; view,以声明方式将 state 映射到视图; actions,响应在 view 上的用户输入导致的状态变化。 组件间通信方式回顾 大多数场景下的组件都并不是独立存在的,而是相互协作共同构成了一个复杂的业务功能。在 Vue 中为 不同的组件关系提供了不同的通信规则 VUEX介绍 Vuex

2021-11-28 10:51:08 584

原创 Vuex状态管理器——组件之间的通信

文章目录父传子:Props Down子传父:Event Up非父子组件:Event Bus父直接访问子组件:通过 ref 获取子组件简易的状态管理方案 Vue 最核心的两个功能:数据驱动和组件化。 组件化开发给我们带来了: 更快的开发效率 更好的可维护性 每个组件都有自己的状态、视图和行为等组成部分。 状态管理包含以下几部分: state,驱动应用的数据源; view,以声明方式将 state 映射到视图; actions,响应在 view 上的用户输入导致的状态变化。 组件间通信方式回顾 大多数

2021-11-27 23:31:05 629

原创 Vue 中模板编译的过程

1、缓存公共的 mount 函数,并重写浏览器平台的 mount 2、判断是否传入了 render 函数,没有则判断是否传入了 remplate,没有的话则获取 el 节点的 outerHTML 作为 template 3、调用 baseCompile 函数 4、解析器(parse)将模板字符串的模板编译转换成 AST 抽象语法树。parse 的核心就是 parseHTML 将HTML 转换为 AST 并返回,在处理 v-for,v-if,v-once 时先移除指令,然后将指令的值记录在树上 5、优化器(.

2021-11-13 17:33:44 1199 1

原创 虚拟 DOM 中 Key 的作用和好处

在 v-for 的过程中,为给每一个节点设置 key 属性的作用: 以便它能够每一个节点的身份,在进行比较的时候,会基于 key 的变化重新排列元素顺序。从而重用和重新排序现有元素, 并且会移除 key 不存在的元素。方便让 vnode 在 diff 的过程中找到对应的节点,然后成功复用。 设置 key 的好处 可以减少 dom 的操作,减少 diff 和渲染所需要的时间,提升了性能。 ...

2021-11-13 17:30:33 422 1

原创 Vue 响应式原理

一,入口,initState() vm 状态的初始化,整个影响是从 init 方法中开始的, 在 init 方法中,调用 initState 方法初始化状态, 在 initState 方法中调用 initData(), 将 data 属性注入到 vue 实例上,并且调用 observe() 将其转化为 响应式对象,observe 是响应式的入口。 二,observe(value) 位于 src/core/observer/index.js,首先判断 value 是否是对象,如果不是对象直接返回,判断 val

2021-11-13 17:26:49 297 1

原创 Vue 首次渲染的过程

一,从入口文件开始 定义在 src/platform/web/entry-runtime-with-compiler.js 二,Vue 初始化过程 1,首先取出 Vue 的 $mount 进行重写,给 $mount 增加新的功能 // src/platform/web/entry-runtime-with-compiler.js // 保留 Vue实例的 $mount 方法 const mount = Vue.prototype.$mount Vue.prototype.$mount = f

2021-11-13 17:24:31 1632 1

原创 Diff 算法的执行过程&&数据响应式&&模拟router&&Snabbdom

1、当我们点击按钮的时候动态给 data 增加的成员是否是响应式数据,如果不是的话,如何把新增成员设置成响应式数据,它的内部原理是什么。 let vm = new Vue({ el: '#el' data: { o: 'object', dog: {} }, method: { clickHandler () { // 该 name 属性是否是响应式的 this.dog.name = 'Trump' } } }) 不是响应式的 let vm = new Vue({

2021-10-31 11:10:08 285 1

原创 webpack 学习笔记

一、Webpack 的构建流程主要有哪些环节?如果可以请尽可能详尽的描述 Webpack 打包的整个过程 1、初始化项目,初始化参数:根据用户配置的不同参数 2、初始化参数,根据用户在命令窗输入的参数,以及 webpack.config.js 的配置,得到最后的配置 3、开始编译,根据上一步得到的最后的配置参数,初始化得到一个 compiler 对象,注册所有的插件 plugin ,插件开始监听 webpack 的构建过 程, 不同的环节会对应相应的处理然后开始执行编译。 3、确定入口,根据 webp

2021-10-01 20:50:54 296 1

原创 JS 函数式编程

是

2021-08-28 18:13:50 2843

原创 JS 模块化开发

文章目录CommonJS规范ES Modules 的特性ESM 导入和导出ESM in Node.js CommonJS规范 一个文件就是一个模块 每个模块都有单独的作用域 通过 module.exports 导出成员 通过 require 函数载入模块 CommonJS 是以同步模式加载模块 node端: node的执行机制是在启动时加载模块。执行过程中不需要加载,只会使用到模块,因此node环境下使用commonjs没有问题 浏览器端: 必然导致效率低下,每次页面加载都会导致大量同步模式请求出现,

2021-08-28 18:01:45 1023

原创 使用 Gulp 完成项目的自动化构建

首先 npm init 创建一个 package.json 在 package.json 里面添加一个配置项中添加 bin “bin”: { “pages-boilerplate”: “cli.js” }, 在根目录下创建一个cli.js文件,里面写下面的内容,顶格写注释(必写) #!/usr/bin/env node console.log(‘cli working!’) 在当前目录中运行npm link,会自动创建一个package-lock.json文件 花括号里的name,...

2021-08-26 22:48:43 227

原创 如何理解 JS异步编程、EventLoop、消息队列、宏任务、微任务

什么是JS异步编程 同步编程(Synchronous) 众所周知,js是运行在浏览器的脚本语言。它的作用就是用来完成页面的交互效果。 也是就是 JS的DOM操作。为了防止有的在对DOM执行修改操作,有的对这个DOM执行删除操作,这时候浏览器不知道该听谁的了。为了避免这种冲突,javaScript就被设计成为了单线程工作。 javaScript中只有一个执行栈,就好比有很多人买鸿星尔克,但是只有一个收银台,所以只能一个一个的付钱,这样的好处是可以让浏览器有条不紊的运行,坏处是当遇到返回时较长的时候,后面的代码

2021-07-31 16:59:20 480

原创 vuex中的commit、dispatch于store中mutation和action的用法

建议先读文档再读次文vuex文档 computed: { ​ ...mapState(['count']), ​ ...mapState(['showNum']), }, methods: { ​ ...mapMutations(['count']), ​ ...mapActions(['subAsync']) } commit的作用,就是调用store中某个mutation的函数。 this.$store.commit('函数名', 入参) dispatch的作用,专门用来触发acti

2021-01-24 17:08:50 2599

原创 Vue-router安装及使用&切换

Vue-router安装及使用 1、安装:npminstallvue-router或cnpminstallvue-router或yarnaddvue-router 2、在新建router.js中引用如下代码(router.js建立在src文件夹下) importVuefrom'vue' importVueRouterfrom'vue-router' Vue.use(VueRouter) 3、在src中新建view文件夹,在view新建例如:Home文件夹,在文件夹中新建index.vue <temp

2020-07-24 14:02:06 402 1

原创 Vue父子组件传值(操作流程)

Vue父子组件传值 1.父传子(props) 需要在vue实例中添加props事件,如下所示 <template> <div> 父组件: <input type="text" v-model="name"> <br> <br> <!-- 引入子组件 --> <child :inputName="name"></c

2020-07-23 20:04:47 507

原创 Vue生命周期(操作代码)& 常见指令

Vue生命周期 1.先做一个点击增加的功能 实现点击增加功能 <template> <div id="app"> {{ array }} <p><button @click="add">add</button></p> </div> </template> export default { name: 'App', data(){ return { arra

2020-07-22 16:20:02 476

原创 网易云音乐源文件下载

1.打开网易云音乐官网 网易云音乐官网 2.找到一首喜欢的音乐点击播放,同时在控制台中找到Network 找到m4a或者是mp3后缀文件 3.找到右键Open in new tab

2020-07-16 11:42:26 3173 1

原创 在小程序中使用ECharts快速上手

首先可以阅读以下ECharts的官方文档 ECharts官方文档 1.将ec-canvas文件夹放到新建的小程序根目录下 在此 链接github 下可以下载到小程序的实例项目,解压到本地可找到此文件。 2.在需要用到的文件夹下的json文件配置引用路径 "usingComponents": { "ec-canvas": "../../ec-canvas/ec-canvas" } 3.在需要用到的文件夹下的js文件下引用echarts import * as echarts from '../.

2020-07-16 11:25:24 751 1

原创 Vue.js环境安装环境教程

Vue.js环境安装环境教程 你好! 我是第一次写博客,多多关照 1、安装node,检查node安装是否成功 第一个按钮是长期支持版本,可以下载第一个。 在cmd控制台中使用 node -v 如果出现了版本号证明安装成功啦! 2、检查npm是否安装成功,在git工具中输入npm(npm一般随node一起安装在电脑中,node如果成功了,npm基本都会没问题 在cmd控制台中使用 npm-v 检查是否安装成功 现在node环境已经安装完成了,npm包管理器也有了。由于有些npm资源被屏蔽或者是国外资源的

2020-06-03 22:22:53 548 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除