vue基础知识笔记
初始vue
-
想让vue工作必须创建vue实例,且要传入一个配置对象
-
root容器里的代码依然符合html规范,只不过混入了一些vue 的特殊语法
-
root容器里的代码被称为vue模板
-
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>初始vue</title> <script src="../js/vue.js"></script> </head> <body> <div class="root"> <h1>hello , {{name}}</h1> </div> </body> <script> Vue.config.productionTip = false; //阻止生产提示 由于加载顺序问题在这里设置失效了 const x = new Vue({ el: ".root", //用于指定vue为哪个容器服务 data() { return { name: '嘿嘿嘿', }; }, }) </script> </html>
-
容器与vue实例之间关系为一对一
-
{{xxx}} 中的xxx为js表达式且xx可以自动读取data里的数据
-
data数据发生改变,页面数据也会改变
-
注意区分:js表达式和js代码的区别
- js表达式会产生一个值
- js代码是语句
vue模板语法
-
插值语法:
- 功能: 用于解析标签体内容
- 写法:
{{xxx}}
xxx是js表达式 ,可以读取data里的所有数据
-
指令语法
- 功能: 用于解析标签(包括:标签属性、标签体内容、绑定事件。。。)
- 写法:
v-bind:href="xxx"或:href="xxx"
xxx同样是js表达式 - 备注 :v-bind 只是vue的一个指令
-
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <script src="../js/vue.js"></script> </head> <body> <div class="root"> <h1>插值语法</h1> <h3>你好{{name}}</h3> <hr> <h1>指令语法</h1> <!-- <a v-bind:href="url">点我去百度</a> --> <a :href="url">点我去百度</a> <a :href="url.toUpperCase()">点我去百度</a> </div> </body> <script> new Vue({ el: ".root", data() { return { name: "jack", url: "https://baidu.com" }; }, }) </script> </html>
数据绑定
- 单向数据绑定
(v-bind)
:数据只能从data
读取不能修改data
里的内容 - 双向数据绑定
(v-model)
:数据既可以从data
中读取也可以修改data里的内容- 注意
- 双向绑定只能应用于表单元素上
v-model:value
可以简写为v-model
因为v-model
本来就是获取的value
值
- 注意
el与data的两种方式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="../js//vue.js"></script>
</head>
<body>
<div class="root">
<h1>你好{{name}}</h1>
</div>
</body>
<script>
/*
el的两种写法
const vue = new Vue({
// el: ".root",
data() {
return {
name: 'jack',
};
},
})
vue.$mount(".root")
*/
new Vue({
el: ".root",
// data() {
// console.log(this); //此处this是vue实例对象
// return {
// name: 'value',
// };
// },
data: {
name: "vale"
}
})
</script>
</html>
mvvm模型
vue数据代理
- 通过vm对象代理data中的属性
- 好处:更加方便的获取data中的数据
- 基本原理
- 通过Object.defineProperty()把data对象中的所有属性添加到vm上。
- 为每一个添加到vm上的属性都指定一个get和set
- 在get和set内部去操作data中对应的属性
事件处理
- 事件的基本使用:
- 使用
v-on
或 @xxx 绑定事件 其中 xxx是时间名 - 事件的回调需要配置在
mehtods
中,最终会出现在vm上 methods
中配置的函数,不要使用箭头 函数否则this会指向windowmethods
中配置的函数都是被vue管理的 函数 this只想的是vm或组件实例对象@click=demo 和@click=($event)
效果一直,只不过后面可以传参
- 使用
- 事件修饰符
prevent
阻止默认事件stop
阻止冒泡once
事件只触发一次capture
使用事件的捕获模式self
只有event.target是当前操作元素时才会触发passive
事件的默认行为立即执行,无需等待事件回调执行完毕
- 键盘事件
- vue中常用按键别名
- 回车=> enter
- 删除=>delete
- 退出=>esc
- 空格=>space
- 换行=>tab
- 上=>up
- 下=>down
- 左=>left
- 右=>right
- vue中未提供别名的键可以使用原始键名绑定注意单词之间永短横线命名
- 系统修饰键
- 配合keyup使用:按下修饰键的同时再按下其他键,随后释放其他键,事件才会被触发
- 配合keydown使用:正常出发事件
- keycode指定具体按键
vue.config.keycodes.自定义的按键名=键码
定制案件别名
- vue中常用按键别名
作者:01cui
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)