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 · 167 阅读 · 0 评论 -
vue-6
2-10 virtual DOM引入vDOM的原因是使用真实DOM是非常昂贵的,我们知道一个真实DOM其实是有上百个属性的,因为游览起的标准就把DOM实现的非常复杂。所以vue实现了一个VNode,只定义了十几种属性,便可以描述一个dom。目录:core/vdom/vnode.jsexport default class VNode { tag: string | void; data: VNodeData | void; children: ?Array<VNode>;原创 2021-04-13 17:57:39 · 90 阅读 · 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 · 96 阅读 · 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 · 211 阅读 · 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 · 63 阅读 · 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 · 76 阅读 · 0 评论 -
vue-1
使用flow进行类型检查,避免线上的一些隐患bug。1.类型推荐:通过变量的使用上下文来推断变量类型,然后根据这些推断来检查类型2.类型注释:事先注释好我们期待的类型,flow会基于这些注释来判断flow使用流程:cnpm i flow-bin -gflow initflow your’s.js...原创 2021-04-06 19:53:04 · 88 阅读 · 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 · 245 阅读 · 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 · 435 阅读 · 0 评论 -
vue 反向代理无效
????:不要写接口ip 或者 域名。(也就是config文件中的修改)(还不懂在哪–》也就是axios 或者其他你用的网络请求插件,和接口名称拼接的域名或者ip写成空字符串就行,不要写具体的内容)原创 2020-11-21 18:58:18 · 1842 阅读 · 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 · 1117 阅读 · 0 评论 -
vu3.x alias支持路径提示
1.项目根目录创建 jsconfig.json2.内容为:{ "compilerOptions": { "baseUrl": "./", "paths": { "@/*": [ "src/*" ], "_c/*": [ "src/components/*" ], "_a/*": [原创 2020-08-12 17:43:44 · 154 阅读 · 0 评论 -
vscode 格式化 单引号变成了双引号,导致和eslint不一致
在项目根目录下新建文件:.prettierrc.json内容:{“singleQuote”:true,“semi”:false}原创 2020-05-12 09:18:33 · 3064 阅读 · 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 · 1855 阅读 · 1 评论