1、Vue基础入门
1.1、脚手架环境安装Vue
安装脚手架依赖
cnpm i -g @vue/cli
1.2、创建Vue项目
在本地创建项目文件夹,例如 d:\project ,在此目录中运行 cmd ,然后执行下面命令:
vue create myapp
cd myapp
npm run serve
项目启动成功后,在浏览器中访问 http://localhost:8080
1.3、精简项目代码
项目目录结构
- public 本地服务器的根目录
- src 源码
- assets 静态资源文件,例如图片、视频等
- components 管理公共组件的目录
- router 管理路由的目录
- store 管理状态的目录
- views 管理视图组件的目录
- App.vue 根组件
- main.js 入口文件
- package.json npm的配置文件
精简:
对 App.vue 精简
<template>
<router-view></router-view>
</template>
<style>
html,body{
margin: 0;
padding: 0;
height: 100%;
}
</style>
剩下的目录根据项目需求进行删除。
2、Vue的核心概念
2.1、指令
2.1.1、文本指令
2.1.2、流程控制
-
v-if -
v-else-if -
v-else -
v-for
2.1.3、显示与隐藏
- v-show
- 与
v-if 的区别:
v-show 使用 display 属性控制元素的显示与隐藏v-if 值为 false 时,不会被渲染到页面上- 执行效率分析
2.1.4、属性绑定
-
v-bind
v-bind 的值一定是一个在 data 声明的变量或 js 表达式 -
style绑定
-
class 绑定
2.1.5、事件处理
-
v-on
-
简写 @ -
获取当前元素的事件对象
-
<template>
<div>
<button @click="handleClick($event)">按钮</button>
<input type="text" @keypress="handleInput($event)">
</div>
</template>
<script>
export default {
methods: {
handleClick(e){
//获取当前元素的事件对象
console.log(e)
//获取点击的元素DOM对象
console.log(e.target)
},
handleInput(e){
//获取当前输入框的值
console.log(e.target.value)
//获取当前输入的状态码
console.log(e.keyCode)
}
}
}
</script>
-
事件修饰符
-
按键修饰符
.enter .tab .delete (捕获“删除”和“退格”键).esc .space .up .down .left .right -
系统修饰键
2.1.6、表单绑定
-
v-model
-
修饰符
.trim 去掉首尾空格.number 如果是数字开头的话,如果内容中间出现了非数字内容,只会保留第一部分的数字;如果是非数字开头,以字符串类型处理.lazy 当失去焦点时,才会执行双向绑定 -
如果要绑定 checkbox 多个元素时,v-model="array" 值要为数组类型 -
<template> <div> <!-- 文本输入框 --> <input type="text" v-model="val"> <!-- 文本域 --> <textarea v-model="vals"></textarea> <!-- 单选按钮 --> <input type="radio" v-model="sex" value="男">男 <input type="radio" v-model="sex" value="女">女 <!-- 复选框 --> <input type="checkbox" v-model="hobby" value="篮球">篮球 <input type="checkbox" v-model="hobby" value="足球">足球 <input type="checkbox" v-model="hobby" value="排球">排球 <!-- 下拉框 --> <select v-model="word"> <option value="A">A</option> <option value="B">B</option> <option value="C">C</option> </select> </div></template><script>export default { data(){ return { val: '', vals: '', sex: '男', hobby: ['篮球'], //如果有值,该项为默认选中 word: '' } }}</script>
2.1.7、编译处理
- v-pre
- v-once
- v-cloak
- 会一直保留在元素上面,直到Vue编译完成后,自动消失
2.1.8、插槽
2.2、选项
2.2.1、数据选项
-
data
- 在组件内,必须是一个返回初始对象的函数
- 为了保证当前组件的多个实例直接不会共享data中的数据
-
props
-
methods
-
watch
-
computed
- 计算属性
- 有缓存,当所依赖的响应式数据发生变化时,才会重新计算
2.2.2、DOM选项
- el
- 使用
css 选择器或 HTMLDomcument 对象的方法获取到页面中已经存在的 DOM 元素,将该元素作为Vue实例的挂载目标。 - template
- 在自定义组件中用于创建
VNode 模板 - 声明的
VNode 模板中,最外层只能有一个根元素
2.2.3、生命周期
- beforeCreate
- 不能获取到vue实例的属性与方法
- 不能获取DOM对象
- created
- beforeMount
- mounted
- beforeUpdate
- 当
data 中响应式数据发生变化时,会触发页面的渲染,页面渲染前将调用该方法 - 在此方法获取的响应式数据的值为修改后的值
- updated
- 响应式数据更新,触发页面渲染,页面渲染后将调用此方法
- 在此处可以获取更新后的DOM元素对象
- beforeDestroy
- destroyed
- activated
- deactivated
- errorCaptured
2.2.4、资源选项
- filters
- directives
- 自定义指令
- 钩子函数
- bind
- inserted
- update
- componentUpdated
- unbind
- 钩子函数的参数
- components
2.3、实例属性和方法
2.4、内置组件
2.5、特殊属性
2.6、全局API
|