1.创建项目 vue create 项目名
2.进入项目cd 项目名
3.启动项目 yarn serve
node_modules下都是下载的第三方包
public/index.html – 浏览器运行的网页
src/main.js – webpack打包的入口文件
src/App.vue – vue项目入口页面
package.json – 依赖包列表文件
项目根目录下的vue.config.js配置文件
devServer:{
port:3000, //端口
open:true, //自动打开浏览器
host:"localhost" //设置本地主机地址
}
eslint是代码检查工具,违反规定就报错
在vue.config.js中设置lintOnSave为false重启服务器即可 暂时关闭
Vue推荐采用.vue文件来开发项目
template里只能有一个根标签
vue文件-独立模块-作用域互不影响
style配合scoped属性, 保证样式只针对当前template内标签生效
vue文件配合webpack, 把他们打包起来插入到index.html
assets下图片和components下的文件,删除
App.vue文件里代码只留个框即可
@vue/cli是:全局模块包,安装后得到vue的命令
创建脚手架项目:vue create 项目名 得到一套标准文件夹+文件+webpack环境
启动脚手架项目:yarn server启动, 内置了webpack-dev-server, 得到一个地址和端口浏览器webpack打包后网页
脚手架的好处:开箱即用, 配置好的一套环境, 快速开发自己项目
脚手架项目入口:main.js - webpack打包入口
App.vue - Vue页面入口
index.html - 网页入口
单vue文件的好处:独立作用域,作用域互不影响,style配合scoped样式针对当前标签生效 互不影响
语法: {{ 表达式 }} 插值表达式中不能写语句 :不能写分支,循环
双大括号,可以把Vue变量直接显示在标签内
Vue中变量声明在:data必须是一个函数 在函数里面 需要一个return 对象
安装:vue-devtools
讲解
设计模式: 是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。(代码分层, 架构设计)
MVVM,一种软件架构模式,决定了写代码的思想和层次
设计模式是对代码分层,引入一种架构的概念
MVVM是(模型,视图,视图模型双向关联的一种设计模式)
1:vue指令-v-bind 属性动态赋值
语法:v-bind:属性名="vue变量"
简写::属性名="vue变量"
2:vue指令-v-on 给标签绑定事件
语法:v-on:事件名="methods中的函数"
v-on:事件名="methods中的函数(实参)”
简写:@事件名="methods里的函数名"
函数时定义在跟data 平级处 methods:{
函数名(){}
}
3: vue事件处理函数中, 拿到事件对象
语法:
无传参, 通过形参直接接收
传参, 通过$event指代事件对象传给事件处理函数
4: vue指令-v-on修饰符
语法:
@事件名.修饰符="methods里函数"
.stop - 阻止事件冒泡
.prevent - 阻止默认行为
5: vue指令-v-on按键修饰符
语法:
@keyup.enter - 只有按下回车才能触发这个键盘事件函数 或者 @keydown.enter
@keyup.esc - 只有按下取消键才能触发这个键盘事件函数 或者 @keydown.esc
6: vue指令 v-model双向绑定1
语法: v-model="vue数据变量"
双向数据绑定
数据变化 -> 视图自动同步
视图变化 -> 数据自动同步
最后演示: 用户名绑定 - Vue内部是MVVM设计模式
爱好:抽烟
爱好:看帅哥
爱好:打游戏
性别:男:
性别:女:
7: Vue指令-v-model修饰符
语法:
v-model.修饰符="vue数据变量"
.number 以parseFloat转成数字类型
.trim 去除首尾空白字符
.lazy 在change时触发而非inupt时
8: Vue指令-v-html 设置内容
语法:
v-html="vue数据变量"
注意: 会覆盖插值表达式
v-html作用:可以设置标签显示的内容
和插值表达式区别是:插值表达式把值当成普通字符串显示,v-html把值当成标签进行解析显示
9.Vue指令-v-show和v-if
语法:
v-show="vue变量"
v-if="vue变量"
原理
v-show 用的display:none隐藏 (频繁切换使用)
v-if 直接从DOM树上移除
高级
V-if 可以配合 v-else使用
10. Vue指令-v-for 用数据循环生成标签
语法
v-for="(值变量, 索引变量) in 目标结构"
v-for="值变量 in 目标结构"
目标结构:
可以遍历数组 / 对象 / 数字 / 字符串
注意:
v-for的临时变量名不能用到v-for范围外
同级标签的key值不能重复
v-for循环列表:先准备目标数据结构 可以遍历数组/对象/固定数字/字符串 谁想循环就把v-for写谁身上
v-for注意事项:值变量和索引变量不能用到v-for范围以外 v-for="(值变量, 索引变量) in Vue变量" - 一定要注意in两边必须有空格
v-for更新的机制: 数组变更方法, 就会导致v-for更新, 页面更新. 数组非变更方法, 返回新数组, 就不会导致v-for更新, 可采用覆盖数组或this.$set()
这些方法会触发数组改变, v-for会监测到并更新页面:
push()
pop()
shift()
unshift()
splice()
sort()
reverse()
这些方法不会触发v-for更新
slice()
filter()
concat()
Vue基础_v-for就地更新:v-for 的默认行为会尝试原地修改元素而不是移动它们。
v-for更新时, 是尝试复用标签就地更新内容
1 npm |
2 yarn |
3 快速初始化: npm init -y |
4 快速初始化: yarn init -y |
5 项目依赖包: npm i xxx |
6 项目依赖包: yarn add xxx |
7 项目开发依赖包: npm i xxx -D |
8 项目开发依赖包: yarn add xxx -D |
9 全局包: npm i -g xxx |
10 全局包: yarn global add xxx |
11 删除包: npm uni xxx |
12 删除包: yarn remove xxx |
13 脚本运行: npm run xxx |
14 脚本运行: yarn xxx |
15 |
案例:折叠面板
芙蓉楼送辛渐
{{ isShow ? "收起" : "展开" }}
寒雨连江夜入吴,
平明送客楚山孤。
洛阳亲友如相问,
一片冰心在玉壶。