vue简介
==渐进式==javacript==框架==, 一套拥有自己规则的语法
@vue/cli脚手架
- 开箱即用
- 0配置webpack
- babel支持
- css, less支持
- 开发服务器支持
全局安装命令
yarn global add @vue/cli
# OR
npm install -g @vue/cli
查看脚手架
vue -V
创建项目
# vue和create是命令, vuecli-demo是文件夹名
vue create vuecli-demo
4. 进入脚手架项目下, 启动内置的热更新本地服务器
cd vuecil-demo
npm run serve
# 或
yarn serve
@vue/cli 目录和代码分析
主要文件及含义
@vue/cli 项目架构了解
_@vue/cli 自定义配置
module.exports = {
devServer: { // 自定义服务配置
open: true, // 自动打开浏览器
port: 3000
}
}
联系可以把默认的关闭
重要词汇
- 指令式
- 声明式
- 数据驱动视图
- 双向绑定
- mvvm设计模式
设计模式是对一般问题的通用解决方案 - MVVM是什么?
MVVM(模型,视图,视图模型双向关联的一种设计模式) - MVVM好处?
减少DOM操作,提高开发效率
vue 指令
vue变量 先声明在使用
- 1 v-bind 绑定动态属性 目标:给标签属性设置
- 语法:
v-bind:属性名="vue变量" - 简写:
:属性名="vue变量"
- 2 v-on 和修饰 onClick 事件绑定 目标:给标签绑定事件
语法 v-on:事件名="要执行的==少量代码=="v-on:事件名="methods中的函数"v-on:事件名="methods中的函数(实参)"简写: @事件名="methods中的函数"
v-on事件对象
语法:
- 无传参, 通过形参直接接收
- 传参, 通过$event指代事件对象传给事件处理函数
-v-on修饰符
目的: 在事件后面.修饰符名 - 给事件带来更强大的功能
语法:
- @事件名.修饰符="methods里函数"
- .stop - 阻止事件冒泡
- .prevent - 阻止默认行为
-
- .once - 程序运行期间, 只触发一次事件处理函数
v-on按键修饰符
目标: 给键盘事件, 添加修饰符, 增强能力
语法:
@keyup.enter - 监测回车按键@keyup.esc - 监测返回按键
3 v-model model:数据
vue指令 v-model
目标: 把value属性和vue数据变量, 双向绑定到一起
语法: v-model="vue数据变量" 双向数据绑定 1- 数据变化 -> 视图自动同步 2- 视图变化 -> 数据自动同步
v-model修饰符的作用
目标1: 让v-model拥有更强大的功能
目标2:能够自动监听表单元素的input事件,并且会自动将该事件传递过来的值赋值给v-model绑定的变量
语法:
v-model.修饰符="vue数据变量"
number 以parseFloat转成数字类型
trim 去除首尾空白字符
lazy 在change时触发而非inupt时 change表示失焦输入框的内容同步
-
4 v-text和v-html innerHTML innerText
vue指令 v-text和v-html
目的: 更新DOM对象的innerText/innerHTML
语法:
v-text="vue数据变量"
v-html="vue数据变量"
注意: 会覆盖插值表达式
总结: v-text把值当成普通字符串显示, v-html把值当做html解析
-
5 v-show和v-if以及v-else
目标: 控制标签的隐藏或出现
语法:
v-show="vue变量"
v-if="vue变量"
原理
v-show 用的display:none隐藏 (频繁切换使用)
v-if 直接从DOM树上移除
高级
v-else使用
总结: 使用v-show和v-if以及v-else指令, 方便通过变量控制一套标签出现/隐藏
6 v-for
目标: 列表渲染, 所在标签结构, 按照数据数量, 循环生成
语法
v-for="(值, 索引) in 目标结构"
v-for="值 in 目标结构"
目标结构:
可以遍历数组 / 对象 / 数字 / 字符串 (可遍历结构)
注意:
v-for的临时变量名不能用到v-for范围外
` 总结: vue最常用指令, 铺设页面利器, 快速把数据赋予到相同的dom结构上循环生成`
修饰符
小知识点
props组件的特性: 1-自定义组件的属性会自动成为组件内根 标签的属性(props中的属性除外) 2-props中的数据是只读
@imput事件,监听内容发生改变时