Vue学习笔记——Vue核心
2023-09-14 09:15:02 时间
1.1 Vue简介
1.1.1.官网
- 英文官网: https://vuejs.org/
- 中文官网: https://cn.vuejs.org
1.1.2.介绍与描述
- 动态构建用户界面的渐进式JavaScript框架
- 作者:尤雨溪
1.1.3.Vue的特点
- 遵循MVVM模式
- 编码简洁,体积小,运行效率高,适合移动/PC端开发
- 它本身只关注UI,也可以引入其他第三方库开发项目
1.1.4.与其他JS框架的关联
- 借鉴Angular的模板和数据绑定定数
- 借鉴React的组件化和虚拟DOM技术
1.1.5.Vue周边库
- vue-cli:vue脚手架
- vue-resource
- axios
- vue-router:路由
- vuex:状态管理
- element-ui:基于vue的UI组件库(PC端)
…
1.2.初始Vue
略
1.3.模板语法
1.3.1.效果
插值语法:显示文字/图片在页面上
指令语法:跳转页面
1.3.2.标题模板的理解
html中包含了一些JS语法代码,语法分为两种,分别为:
- 插值语法(双大括号表达式)
- 指令(以v-开头)
1.3.3.插值语法
- 功能:用于解析标签体内容
- 语法:{{xxx}},xxxx会作为js表达式解析
1.3.4.指令语法
- 功能:解析标签属性、解析标签体内容、绑定事件
- 举例:v-bind:href=‘xxxx’,xxxx会作为js表达式被解析
- 说明:Vue中有很多的指令,此处只是用v-bind举个例子
1.4数据绑定
1.4.1.效果
分为单向数据绑定和双向数据绑定
1.4.2.单向数据绑定
- 语法:v-blind:href=“xxx”,或简写为:href
- 特点:数据只能从data流向页面
1.4.3.双向数据绑定
- 语法:v-mode:value=“xxx”,或简写为v-mode=“xxx”
- 特点:数据不仅能从datda流向页面,还能从页面流向data
1.5.MVVM模型
- M:模型(Model):对应data中的数据
- V:试图(View):模板
- VM:视图模型(ViewModel):Vue实例对象
1.6事件处理
1.6.1.效果
1.6.2.绑定监听
- v-on:xxx=“fun”
- @xxx=“fun”
- @xxx=“fun(参数)”
- 默认事件形参:event
- 隐含属性对象:$event
1.6.3.事件修饰符
- prevent:阻止事件的默认行为 event.preventDefault()
- stop:停止事件冒泡event.stopPropagation()
1.6.4.按键修饰符
- keycode:操作的是某个keycode值的键
- keyName:操作的某个按键名的键(少部分)
1.7.计算属性与监视
1.7.1.效果
1.7.2.计算属性-computed
- 要显示的数据不存在,要通过计算得来
- 在computed对象中定义计算属性。
- 在页面中使用{{方法名}}来显示计算的结果。
1.7.3.监视属性-watch
- 通过vm对象的$watch()或watch配置来监视指定的属性
- 当属性变化时,回调函数自动调用,在函数内部进行计算
1.8.class与style绑定
1.8.1.理解
- 在应用界面中,某个(些)元素的样式是变化的
- class/style绑定就是专门用来实现动态样式效果的技术
1.8.2.class绑定
- :class=‘xxx’
- 表达式是字符串:‘classA’
- 表达式是对象:{classA:isA,classB:isB}
- 表达式是数组:[‘classA’,‘classB’]
1.8.3.style绑定
- :style=“{color:activeColor,fontSize:fontSize+‘px’}”
- 其中activeColor/fontSize是data属性
1.9.条件渲染
1.9.1.条件渲染指令
- v-if与v-else
- v-show
1.9.2.比较v-if与v-show
- 如果需要频繁切换v-show较好
- 当条件不成立时,v-if的所有子节点不会解析(项目中使用)
1.10.列表渲染
1.10.1.效果
1.10.2.列表显示指令
- 遍历数组:v-for/index
- 遍历对象:v-for/key
1.11.收集表单数据
1.12.过滤器
1.12.1.效果
1.12.2.理解过滤器
- 功能:对要显示的数据进行特定格式化后再显示
- 注意:并没有改变原本的数据,是产生新的对应的数据
1.13.内置指令与自定义指令
1.13.1.常用内置指令
- v-text:更新元素的textContent
- v-html:更新元素的innerHTML
- v-if:如果为true,当前标签才会输出页面
- v-else:如果为false,当前标签才会输出到页面
- v-show:通过控制display样式来控制显示/隐藏
- v-for:遍历数组/对象
- v-on:绑定事件监听,一般简写为@
- v-bind:绑定解析表达式,可以省略v-bind
- v-model:双向数据绑定
- v-cloak:防止闪现,与css配合:[v-cloak]{display:none}
1.13.2.自定义指令
1.注册全局指令
Vue.directive('my-directive', function(el, binding){
el.innerHTML = binding.value.toupperCase()
})
2.注册局部指令
directives : {
'my-directive' : {
bind (el, binding) {
el.innerHTML = binding.value.toupperCase()
}
}
}
使用指令:
v-my-directive=‘xxx’
1.14.Vue实例生命周期
1.14.1.效果
1.14.2.生命周期流程图
1.14.3.vue生命周期分析
- 初始化显示
- beforeCreate()
- created()
- beforeMount()
- mounted()
- 更新状态:this.xxx=value
- beforeUpdate()
- updated()
- 销毁vue实例:vm.$destory()
- beforeDestory()
- destoryed()
1.14.4.常用的声明周期放啊
1、mounted():发送ajax请求,启动定时器等异步任务
2、beforeDestroy():做收尾工作,如:清除定时器
相关文章
- PHP结合Vue实现上拉分页
- Vue笔记:Vue中使用组件
- Vue笔记:Vue基础
- Vue笔记:安装配置node.js及使用vue-cli创建项目
- Vue -> 解决 vue-ueditor-wrap 不能显示的问题
- 解决vue+axios请求报错POST http: net::ERR_CONNECTION_REFUSED,在封装的请求中统一处理请求异常的问题
- vscode的vetur插件提示 [vue-language-server] Elements in iteration expect to have 'v-bind:key' directives错误的解决办法
- vue+php接口
- springboot+vue实现前后端分离之后端spring部分(spring boot 2.5.4/vue.js 3.2.4)
- vue.js3.2.6: 用swipper实现轮播图(swiper@6.8.4)
- 【视频】vue指令之v-if、v-bind
- vue-router路由的安装、配置、具体用法和Vue-router学习笔记
- Vue CLI 4.x安装成功,但是无法运行vue-V等指令。报错vue -V 不是内部或外部命令,也不是可运行的程序或批处理文件解决方案!!!
- Vue keep-alive
- 测试开发之Vue学习笔记-Vue路由
- 全面总结 Vue 3.0 的新特性!手把手教你如何入门Vue3.0(适合小白的保姆级教程)【尚硅谷vuejs3.0笔记】
- Vue学习笔记——vue-router
- 测试开发之Vue学习笔记-Vue基础