
vue
lar_slw
这个作者很懒,什么都没留下…
展开
-
v-7
2-12 createElement 还是接着_render方法讲: vnode = render.call(vm._renderProxy, vm.$createElement) 之前讲了vm._renderProxy是怎么回事,现在学习一下vm.$createElement部分。 首先在core/instance/render.js中就可以看到vm.$creteElement的定义。 模板编译出来的代码会执行: vm._c = (a, b, c, d) => createElement(vm原创 2021-04-14 16:09:02 · 193 阅读 · 0 评论 -
vue-6
2-10 virtual DOM 引入vDOM的原因是使用真实DOM是非常昂贵的,我们知道一个真实DOM其实是有上百个属性的,因为游览起的标准就把DOM实现的非常复杂。所以vue实现了一个VNode,只定义了十几种属性,便可以描述一个dom。 目录:core/vdom/vnode.js export default class VNode { tag: string | void; data: VNodeData | void; children: ?Array<VNode>;原创 2021-04-13 17:57:39 · 105 阅读 · 0 评论 -
vue-5
2-6 vue实例挂载的实现 我们选择的是 RunTime+compiler版本,所以入口文件是platforms/web/entry-runtime-with-compiler.js 。 首先我们能够看到platforms/web/entry-runtime-with-compiler.js里写入了Vue.prototype.$mount。但是我们又发现当前文件引入的./runtime/index里面也同样写入了Vue.prototype.$mount。那么作者为什么要重复定义原型上的$mount方法呢。原创 2021-04-13 17:40:46 · 113 阅读 · 0 评论 -
vue-4
2-2 数据驱动 这一章主要分析当我们声明一个插值变量,vue是如何把这个变量渲染到真实dom上的。 首先是调试过程,我们最好是使用Runtime+compiler版本的,这样的话脚手架会给webpack.base.conf.js中的resolve添加一行代码: 'vue': resolve('node_modules/vue/dist/vue.esm.js') 这个就是一个带compiler版本的代码,然后我们找到这个文件在里面的_init方法加一个debugger,就可以开始调试了。 实现挂载的真正函原创 2021-04-09 08:30:45 · 227 阅读 · 0 评论 -
vue-3
1-9 从入口开始 分析 Runtime+Compiler 的构建代码。 1.入口文件是 src/platforms/web/entry-runtime-with-complier.js 。这里给Vue的prototype上绑定了一个和编译器相关的方法是$mount。 2.然后src/platforms/web/entry-runtime-with-complier.js文件中的Vue其实来自于./runtime/index里面。这里面给Vue定义了很多静态的全局配置、patch、$mount方法。 3.然原创 2021-04-08 19:47:28 · 74 阅读 · 0 评论 -
vue-2
1-5 Vue.js源码目录设计 1-6 vuejs 源码构建 src |-- compiler # 编译相关 |-- core # 核心代码 |-- platforms # 不同平台的支持 |-- server # 服务器端渲染 |-- sfc # .vue文件解析 |-- shared # 共享代码 Vue使用rollup进行代码编译,它更偏向于js框架的编译,不像webpack包含很多资源的编译,所以它更轻量。 package.json的讲解: 1.main是项目的入口,也就是你每次import V原创 2021-04-07 08:37:05 · 86 阅读 · 0 评论 -
vue-1
使用flow进行类型检查,避免线上的一些隐患bug。 1.类型推荐:通过变量的使用上下文来推断变量类型,然后根据这些推断来检查类型 2.类型注释:事先注释好我们期待的类型,flow会基于这些注释来判断 flow使用流程: cnpm i flow-bin -g flow init flow your’s.js ...原创 2021-04-06 19:53:04 · 100 阅读 · 0 评论 -
RunTime+compiler和RunTime only版本的区别
RunTime+compiler版本是包含编译代码的,可以把编译代码放在运行时做。 RunTime only是不包含编译代码的需要借助webpack的vue-loader事先把模板编译成render函数 基于以上解释,那么我们能够清晰的知道应该推荐大家使用RunTime only版本的vueCli。 因为他不包含compiler部分的代码,而且执行效率上也是比较高的,因为他事先把我们的模板已经解析成render了,等到游览器加载的时候我们只需要把render函数渲染成真实dom就行,但是如果你使用的是Rum原创 2021-02-18 17:31:42 · 266 阅读 · 0 评论 -
单页面应用 vue项目加载特殊依赖、单独加载依赖的方法
export function addScript(arr, index = 0) { if(arr[index]) { let secScript = document.createElement(“script”); secScript.setAttribute(“type”, “text/javascript”); secScript.setAttribute(“src”, arr[index].src); if(secScript.addEventListener) { secScript.addE原创 2020-12-08 09:51:04 · 464 阅读 · 0 评论 -
vue 反向代理无效
????:不要写接口ip 或者 域名。(也就是config文件中的修改)(还不懂在哪–》也就是axios 或者其他你用的网络请求插件,和接口名称拼接的域名或者ip写成空字符串就行,不要写具体的内容)原创 2020-11-21 18:58:18 · 1871 阅读 · 0 评论 -
vscode 更换背景 mac
我试了插件,于是找了一种修改代码的方式如下 1.settings.json 中加入:“window.titleBarStyle”: “custom” 2.找到要修改的css文件:打开访达–>应用程序–>找到VS Code 右击VS Code–>显示包内容–>Contents/Resources/app/out/vs/workbench/workbench.main.css,打开应该是乱码,快捷键command+shift+F格式化之后,搜索body{ ,也就是给body标签修改样式,原创 2020-08-12 19:52:34 · 1156 阅读 · 0 评论 -
vu3.x alias支持路径提示
1.项目根目录创建 jsconfig.json 2.内容为: { "compilerOptions": { "baseUrl": "./", "paths": { "@/*": [ "src/*" ], "_c/*": [ "src/components/*" ], "_a/*": [原创 2020-08-12 17:43:44 · 179 阅读 · 0 评论 -
vscode 格式化 单引号变成了双引号,导致和eslint不一致
在项目根目录下新建文件:.prettierrc.json 内容: { “singleQuote”:true, “semi”:false }原创 2020-05-12 09:18:33 · 3092 阅读 · 0 评论 -
vue项目配置多模式、多环境
1.多环境 就要配置多个 .env文件 比如开发环境 、测试环境、生产环境对应的就是 .env.dev-test: NODE_ENV = 'dev'(冒号前面是文件名称,后面是文件里面写的内容) .env.test:NODE_ENV = 'test' .env.prod:NODE_ENV = 'prod' 到这里 需要新建的文件就结束了 2.配置package.json 默认打包命令...原创 2020-03-05 17:24:01 · 1900 阅读 · 1 评论