Vue.js - 核心

简介: Vue.js - 核心

【序号】表示后期插入的知识点~

1、Hello World

2、双向绑定
语法:v-model
简介:v-model 是一个模板指令 input里面value的内容输入什么,下面content的内容就会显示出来。

3、数据绑定
语法:{{}}

【1】、属性绑定
语法:v-bind ~ :
简介:title='title' 后面的title不是个字符串 而是js的表达式 (new 实例下面的title)。

4、MVP & MVVM
4.1、MVP

4.2、MVVM


Ps:VM层属于Vue层(数据自动绑定),面向数据开发;而传统的MVP中的P层主要是面向DOM开发;用MVVM模式可以减少30%的代码量甚至可以达到70%。

5、组件
5.0、Vue组件 & Vue实例
在Vue里 ,每一个Vue组件,都是一个Vue实例。
Vue实例有的功能,Vue组件都同样拥有。
如果一个vue实例里面没有定义template,那么这个实例会把它对应的挂载点下的所有内容当作模板。

5.1、全局组件(注释部分) & 局部组件

5.2、组件即实例(new Vue({}))
5.3、组件定义的新标签,有时不能直接使用,比如:

Ps:一般情况下,父组件可以传递数据到子组件(单向),子组件不能修改从父组件而来的变量,不过可以通过data临时变量来传递到父组件。

【4、父子组件通信过程】

(1)父组件通过prop向子组件传值,子组件获得父组件传来的内容和索引。
(2)子组件通过$emit向父组件抛出触发事件名称(delete)和触发事件的list索引值。
(3)父组件通过监听对应事件名称(@delete)触发函数handleDelete。函数通过子组件抛出的索引值对应删除list。

5.7、组件参数检验 + props + 非props 特性

props:不仅可以用数组来接收,也可以用对象来接收;渲染后不会显示content=”xxx”。

非props:可以直接操作要显示的数据,渲染后会显示content=”xxx”。一般非props不常用。

5.8、组件绑定原生事件
传统方式:

Ps:emit针对自定义事件;而在组件内部 @click 属于原生事件。
简写方式:

5.9、非父子组件通信

5.10、内容插槽

5.11、作用域插槽

Ps:在这里的和slot-scope是固定写法。

5.12、动态组件 & v-once 指令

Ps:注释的代码性能更好,因为不需要每次都删除再增贴。

5.13、template 属性



Ps:挂载点:指的是el标记的。
模板:既可以写在挂载点内部,也可以写在js的template里面。
挂载点里面的内容称之为模板。

6、生命周期

Ps:椭圆白底矩形的方法是不用写在methods里面的,与methods同层次级别。

7、计算属性(一)
语法:computed:{}
提示:
7.1、支持缓存,只要跟他的相关值改变才会更新,否则一直使用缓存。
7.2、若一个业务逻辑可以用watch、methods、computed实现的话,优先选择computed,因为代码少,而且性能最好。

7、计算属性(二)
语法:computed:{
xxx:{
set: function(){},
get: function(){}
}
}
提示:
7.1、支持缓存,只要跟他的相关值改变才会更新,否则一直使用缓存。
7.2、set函数里面需要自己split来分割分别赋值。

8、监听器
语法:watch:{}
提示:
8.1、支持缓存,只要跟他监听的变量改变才会更新。

【2】计算属性 & 监听器

9、样式绑定
9.1、:style
9.2、:class
Ps:value用数组或{}(对象)来表示,用对象时,注意用驼峰命名法,比如:font-size => fontSize。

10、条件渲染
10.1、v-show
提示:
10.1.1、如果为false,相当于display:none; 和v-if一样会整个DOM都消失了;从性能上来看v-show性能更好。

10.2、v-if / v-else-if / v-else
提示:
10.2.1、中间不能有其他与if/else不相关的元素,if/else必须紧接着一起。

10.3、key
提示:
10.3.1、因为Vue会尽可能的用已加载好的结构来提高性能,但是有时也会出现BUG,比如:input元素,此时,就要用key来区分,避免乱用别人的DOM(脏数据)。

【3、v-if & v-show】

  • v-if 为false时,DOM元素在HTML里不存在(原来存在的话,现在就被删除),自然而然在流结构上面不存在。
  • v-show 为false时,DOM元素在HTML里存在,但是 display:none 而且在流结构上面仍然属于不存在。

11、列表渲染
语法:v-for=”(item, index, key) of list”
语法::key=”item.id”(不推荐使用”index”,因为性能不好)

提示:
11.1、使用下标改数据,数据成功改变,但不会实时渲染;只有调用上面注释的API(变异方法)改变数据或者改变引用地址(赋值新的对象或数组)才会实时渲染。
11.2、相当于小程序中的可节省一个


11.3、Vue.set 或 vm.$set 也可以实现实时渲染

【4、for of & for in】
ES6 - for of & for in 区别

12、CSS动画原理


Ps1:如果属性name=”xxx”,则class为“.xxx-enter-active”其他类似,默认为“.v-…”。
Ps2:leave:准备离开时调用;enter:准备出现时调用。

13、Animate.css库

Ps:支持自定义动画。

Ps:支持自定义class。

Ps:必须使用自定义的模式,如“enter-active-class”来使用;并且加上“animated”,剩下的效果自己选择。其实Animate.css库只是@keyframes的封装罢了。

14、Animate.css & 自定义同时使用

Ps1:appear 出场时调用。
Ps2:type 选择以自定义的时间为基准。
Ps3::duration 固定出现和消失的基准时间,若一样,则可以“:duration=‘毫秒’”。

15、结合动画Velocity.js使用
传统方式:

Ps:leave类似。

Velocity.js方式:

16、多个元素或组件的过渡
方法一:

方法二:

17、列表过渡

Ps:高亮选中的为的原理部分。

18、动画封装

19、项目初始化



Ps:项目更新到码云上。

20、单页应用 & 多页应用

Ps:单页应用,把当前页DOM删除掉,再把需要的渲染出来。

21、axios
URL代理

22、keep-alive
22.1、多了一个 activated 生命周期
22.2、多了一个 deactivated 生命周期
22.3、exclude 属性
实战:每个地方的首页是不一样的,如果我第一次选A地,发送一次请求;如果第二次还选A地,不发送请求;如果选非A地,发送一次请求。

23、Vue + Vue-Cli + Webpack + npm

build 目录下放置的是项目的webpack配置文件,可以不动

config 是针对线上环境和开发环境的配置文件,也可以不动

node_modules 指的是项目的依赖

src 指的是源代码放置的目录

static 放置的是静态的资源

src中的main.js文件是整个项目的入口文件

vue-cli 提供了一种新的vue的编码语法:单文件组件(一个.vue文件中包含了一个组件里必须的所有内容)

vue-cli 的优势:

23.1、可以使用es6。

23.2、一个组件是一个.vue的文件所定义的,实现了组件的封装。

(在安装该工具之前需要安装npm和node)

24、单文件组件开发模式

  • template下面只能有一个最外层根标签。
  • 在v-cli脚手架中,data不再是一个对象,而是一个函数。

附:

目录
相关文章
|
存储 数据采集 安全
【PHP+VUE】手术麻醉临床信息管理系统源码
【PHP+VUE】手术麻醉临床信息管理系统源码
293 0
|
算法 Java 数据安全/隐私保护
Java:Hutool工具箱之Hutool-crypto加密解密
Java:Hutool工具箱之Hutool-crypto加密解密
3620 0
Java:Hutool工具箱之Hutool-crypto加密解密
如何将Markdown文章轻松地搬运到微信公众号并完美地呈现代码内容
相信有很多童鞋跟我一样,热衷于用Markdown来编写文章。由于其简单的语法和清晰的渲染效果,受到广大码农朋友们的推崇。但是,当我们想维护起自己的公众号时,公众号编辑器往往让我们费劲了脑汁。本人尝试了各种工具,比如:秀米一些在线提供多种不同样式的编辑器。虽然这些编辑器都能够完成编辑任务,但是效果并不理想。与我们所追求的简洁、清晰风格总是格格不入,尤其是对于代码的展示非常的不友好。所以,这里给大家推荐一个本站的在线工具,可以帮助大家快速地把Markdown文章转换成微信公众号支持的漂亮格式。
593 0
如何将Markdown文章轻松地搬运到微信公众号并完美地呈现代码内容
|
人工智能 PyTorch TensorFlow
编程语言与工具:为AI开发选择合适的武器
【7月更文第16天】在当今人工智能(AI)迅速发展的时代,选择恰当的编程语言和框架就如同为征服未知领域的探险者配备精良装备。本文将聚焦于AI开发中的三大基石:Python语言、TensorFlow框架,以及PyTorch框架,为你的AI之旅提供有力的导航。
309 7
|
存储 缓存 JavaScript
Vue3.0监听器watch与watchEffect
Vue3.0监听器watch与watchEffect
190 6
|
11月前
|
消息中间件 存储 分布式计算
大数据-72 Kafka 高级特性 稳定性-事务 (概念多枯燥) 定义、概览、组、协调器、流程、中止、失败
大数据-72 Kafka 高级特性 稳定性-事务 (概念多枯燥) 定义、概览、组、协调器、流程、中止、失败
128 4
|
11月前
|
机器学习/深度学习 存储 搜索推荐
GBDT+LR简介
GBDT+LR简介
170 0
|
存储
PG11新特性解读:新增非空默认值字段不需要重写表
PG11新特性解读:新增非空默认值字段不需要重写表
283 1
|
机器学习/深度学习 运维 监控
云计算时代的运维革新:从传统到现代化的转变
【8月更文挑战第21天】本文旨在探讨云计算技术如何重塑了传统的运维模式,引领运维工作走向自动化、智能化和集成化的新阶段。我们将从云计算带来的挑战入手,深入分析现代运维的核心技术与实践,并展望其未来发展趋势。文章不包含代码示例,而是聚焦于理念和技术的演变以及它们对运维领域的影响。
|
Dubbo Java 应用服务中间件
springboot + dubbo + zookeeper入门到实战超级详解
springboot + dubbo + zookeeper入门到实战超级详解
390 0