热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

学习Vue笔记记录

Vue基础基础声明式渲染:el,data,methods,components。定义template然后挂载到index.html中的某个模

Vue 基础

基础

  1. 声明式渲染:el, data, methods, components。定义 template 然后挂载到 index.html 中的某个模块上
  2. MVVM 模型:双向绑定
  3. 生命周期:beforeCreate, created, beforeMount, mounted, beforeUpdate, updated, beforeDestroy, destroyed

模版语法

  1. mustache,computed,watch 属性(监听 route)
  2. v-once, text, pre, cloak
  3. v-for: 给 DOM 元素添加 key
    1. 数组:(item, index) in myList
    2. 对象:(value, key, index) in myItem
  4. v-bind: 单向绑定属性
    1. 属性:src, value, name, title, class, href, style, id
    2. 动态变样式!绑定 class
  5. v-on: 绑定事件监听
    1. click: stop, prevent, native, once
    2. keyup/keydown: enter...
  6. v-if (else if, else) && v-show
  7. v-model: 双向绑定
    1. 等于 v-bind + v-on (比如:value + :input)
    2. 应用元素:input, mustache, radio(相同 value 互斥),checkbox, select & option
    3. 修饰符:lazy, number, trim

Vue 的组件化开发

  1. data 必须是函数:有自己独立的作用域

父子组件通信

父 --> 子

  1. props
  2. children(子组件数组)
  3. ref

子 --> 父

  1. 事件监听:
    1. 子定义:this.$emit('自定义事件名字', 其他参数)
    2. 父中子:v-on 绑定=‘自定义事件名字’
  2. parent
  3. root

v-slot 插槽

  1. 插槽默认值
  2. 具名插槽:name 对应上
  3. 作用域插槽:数据来自子组件,父组件重新进行排版(template + slot-scope="mychildslot") + mychildslot.myPropName

Webpack + Vue CLI 脚手架

Webpack 基础

  1. 静态模块打包:处理依赖关系,用 loader 将文件转换成浏览器可识别文件。除了JS以外,图片等文件也可以被当成模块来使用
  2. 使用:依赖 node 环境。 npm init: package.json 管理 package name, versionn, description, entry point, script 运行脚本, devDependencies, dependencies
  3. 文件配置打包出入口
  4. 使用vue:npm install vue。module 中配置 resolve extensions & alias

Webpack loader

  1. css
  2. less
  3. 图片:url-loader, file-loader
  4. babel: 处理 ES6 语法

Webpack Plugin

Webpack-dev-server

  1. 本地开发服务器,基于 node.js 服务器搭建
  2. module.exports 的 dev 对象中配置端口等信息

Webpack 配置文件: base 都会被 merge 到 dev 和 prod 中

  1. base.config.js
  2. dev
  3. prod

Vue CLI

CLI 3.0 配置,提供 vue ui命令,提供可视化配置

项目目录结构

  1. build
  2. config
  3. node_modules
  4. src
  5. static
  6. .babelrc
  7. .editorconfig
  8. .eslintignore
  9. .gitignore
  10. ./postcssrc
  11. index.html
  12. package.json
  13. package-lock.json
  14. README.mD

Runtime+compiler vs. Runtime-only

  1. Vue 程序运行过程:template —> AST —> render —> Virtual DOM —> UI
  2. runtime-only 直接 render 成 virtual DOM,没有转换 AST 步骤,效率更高

Vue Router

路由基本知识

  1. 公网 & 内网 IP
  2. 路由过程:内容 + IP地址 —> 猫 —> 路由器通过映射表(内网IP和电脑MAC地址的对照表)再次转发消息
  3. url 的 hash & HTML5 的 history
    1. pushState(data, title, url)
    2. history.back/forward/go/replaceState

前后端渲染 & 路由:后端渲染 --> (Ajax)前后端分离 --> SPA 前端路由

Vue-Router 基础

  1. router-link (to, tag, replace, (自定义)active class) + router-view
  2. 代码跳转:this.$router.push/replace

动态路由

  1. /user/:uid
  2. this.$route.params.uid

路由懒加载:

  1. 只请求 & 加载当前会用到的资源
  2. const myCpn = () => import('component Path')

其他

  1. 嵌套路由:children
  2. 路由传参:params, query
  3. 全局导航守卫:beforeEach (to, from, next), afterEach...
  4. Keep-alive

Javascript ES6 语法

  1. 模块化开发:
    1. Common JS:
      1. module.exports = {...}
      2. const blablabla = require('myPath')
    2. ES6:
      1. export (default)...
      2. import ... from ...
  2. Promise: 异步操作管理

Vuex:状态管理工具

  1. 过程:Vue components —> dispatch —> actions —> commit —> mutations —> modules —> state —> render —> Vue components
  2. state: 存储状态
  3. getters: vuex 的 computed
  4. mutations: 定义改变 state 的方法,使用时要 commit
  5. actions: 专门处理异步操作,使用时先 dispatch 到 actions,然后 actions 在 commit mutations 方法/事件
  6. modules: 拥有独立的 state, getter, mutation, action 的模块

Axios 网络请求封装框架

  1. get/post,普通请求
  2. 发送并发请求:
    1. axios.all([axios数组])
    2. axios.spread((res1, res2) => { ...... })
  3. 全局配置:defaults: url, method, baseURL, headers, timeout...
  4. 创建 Axios 实例:不同的实例有不同的配置
  5. 封装:返回一个函数,返回 Promise 对象,其中创建 axios 实例&用传进来的 config 发送请求,返回 Promise 对象。外部正常 then & catch
  6. 拦截器:
    1. request 请求拦截:
      1. 添加特殊的 header(比如language)
      2. 开启 loading
      3. 判断请求是否满足后端需求(比如看是否有token:登陆状态)
    2. response 拦截:
      1. 后端返回的登陆状态:按需跳转登陆页面
      2. 关闭 loading

推荐阅读
  • 浅析python实现布隆过滤器及Redis中的缓存穿透原理_python
    本文带你了解了位图的实现,布隆过滤器的原理及Python中的使用,以及布隆过滤器如何应对Redis中的缓存穿透,相信你对布隆过滤 ... [详细]
  • 微软推出Windows Terminal Preview v0.10
    微软近期发布了Windows Terminal Preview v0.10,用户可以在微软商店或GitHub上获取这一更新。该版本在2月份发布的v0.9基础上,新增了鼠标输入和复制Pane等功能。 ... [详细]
  • MySQL 5.7 学习指南:SQLyog 中的主键、列属性和数据类型
    本文介绍了 MySQL 5.7 中主键(Primary Key)和自增(Auto-Increment)的概念,以及如何在 SQLyog 中设置这些属性。同时,还探讨了数据类型的分类和选择,以及列属性的设置方法。 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 如何在PHP中获取数组中特定元素的索引位置
    在PHP中获取数组中特定元素的索引位置有多种方法。首先,可以使用 `array_search()` 函数,其语法为 `array_search(目标值, $array)`,该函数将返回匹配元素的第一个键名(即下标)。其次,也可以利用 `array_keys()` 函数,通过 `array_keys($array, 目标值)` 语法来获取所有匹配元素的键名列表。这两种方法都能有效解决数组元素定位的问题,具体选择取决于实际需求和性能考虑。 ... [详细]
  • 2.2 组件间父子通信机制详解
    2.2 组件间父子通信机制详解 ... [详细]
  • 深入解析:Synchronized 关键字在 Java 中对 int 和 Integer 对象的作用与影响
    深入探讨了 `Synchronized` 关键字在 Java 中对 `int` 和 `Integer` 对象的影响。尽管初看此题似乎简单,但其实质在于理解对象的概念。根据《Java编程思想》第二章的观点,一切皆为对象。本文详细分析了 `Synchronized` 关键字在不同数据类型上的作用机制,特别是对基本数据类型 `int` 和包装类 `Integer` 的区别处理,帮助读者深入理解 Java 中的同步机制及其在多线程环境中的应用。 ... [详细]
  • 本文详细解析了使用C++实现的键盘输入记录程序的源代码,该程序在Windows应用程序开发中具有很高的实用价值。键盘记录功能不仅在远程控制软件中广泛应用,还为开发者提供了强大的调试和监控工具。通过具体实例,本文深入探讨了C++键盘记录程序的设计与实现,适合需要相关技术的开发者参考。 ... [详细]
  • C++ 异步编程中获取线程执行结果的方法与技巧及其在前端开发中的应用探讨
    本文探讨了C++异步编程中获取线程执行结果的方法与技巧,并深入分析了这些技术在前端开发中的应用。通过对比不同的异步编程模型,本文详细介绍了如何高效地处理多线程任务,确保程序的稳定性和性能。同时,文章还结合实际案例,展示了这些方法在前端异步编程中的具体实现和优化策略。 ... [详细]
  • Swoole加密机制的安全性分析与破解可能性探讨
    本文深入分析了Swoole框架的加密机制,探讨了其在实际应用中的安全性,并评估了潜在的破解可能性。研究结果表明,尽管Swoole的加密算法在大多数情况下能够提供有效的安全保护,但在特定场景下仍存在被攻击的风险。文章还提出了一些改进措施,以增强系统的整体安全性。 ... [详细]
  • 如何撰写初级和高级前端开发者的专业简历
    如何撰写初级和高级前端开发者的专业简历 ... [详细]
  • 利用 Zend Framework 实现高效邮件发送功能 ... [详细]
  • 本文详细介绍了如何解决DNS服务器配置转发无法解析的问题,包括编辑主配置文件和重启域名服务的具体步骤。 ... [详细]
  • 本文将详细介绍Python中*args和**kwargs的用法,包括它们的基本概念、应用场景以及注意事项。 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
author-avatar
mobiledu2502927537
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有