“Vue 小黑记事本 新增”的版本间的差异
跳到导航
跳到搜索
Jihongchang(讨论 | 贡献) (建立内容为“https://www.bilibili.com/video/BV12J411m7MG/?p=19”的新页面) |
Jihongchang(讨论 | 贡献) |
||
(未显示同一用户的2个中间版本) | |||
第1行: | 第1行: | ||
https://www.bilibili.com/video/BV12J411m7MG/?p=19 | https://www.bilibili.com/video/BV12J411m7MG/?p=19 | ||
+ | |||
+ | # 生成列表结构(<u>v-for 数组</u>) | ||
+ | # 获取用户输入(v-model) | ||
+ | # 回车,新增数据(<u>v-on .enter 添加数据</u>) | ||
+ | |||
+ | === 完整代码 === | ||
+ | <syntaxhighlight lang="html"> | ||
+ | <html> | ||
+ | <head> | ||
+ | <meta charset="UTF-8"> | ||
+ | <meta name="viewport" content="width=device-width,initial-scale=1.0"> | ||
+ | <meta http-equiv="X-UA-Compatible" content="ie=edge"> | ||
+ | <title>v-model 指令</title> | ||
+ | </head> | ||
+ | <body> | ||
+ | |||
+ | <!--主体区域--> | ||
+ | <section id="todoapp"> | ||
+ | <!--输入框--> | ||
+ | <header class="header"> | ||
+ | <h1>小黑记事本</h1> | ||
+ | <input autofocus="autofocus" autocomplete="off" placeholder="请输入任务" class="new-todo" v-model="inputValue" @keyup.enter="add"/> | ||
+ | </header> | ||
+ | |||
+ | <!--列表区域--> | ||
+ | <section class="main"> | ||
+ | <ul class="todo-list"> | ||
+ | <li class="todo" v-for="(item, index) in list"> | ||
+ | <div class="view"> | ||
+ | <span class="index">{{ index+1 }}</span> | ||
+ | <label>{{ item }}</label> | ||
+ | <button class="destroy">x</button> | ||
+ | </div> | ||
+ | </li> | ||
+ | </ul> | ||
+ | </section> | ||
+ | |||
+ | <!--统计和清空--> | ||
+ | <footer class="footer"> | ||
+ | |||
+ | </footer> | ||
+ | </section> | ||
+ | |||
+ | <!--底部--> | ||
+ | <footer class="info"></footer> | ||
+ | |||
+ | <!-- 开发环境版本,包含了有帮助的命令行警告 --> | ||
+ | <script src="vue.js"></script> | ||
+ | |||
+ | <script> | ||
+ | var app = new Vue({ | ||
+ | el:"#todoapp", | ||
+ | data: { | ||
+ | message:"hello world", | ||
+ | list:[ | ||
+ | "写代码","吃饭饭","睡觉觉" | ||
+ | ], | ||
+ | inputValue:"好好学习,天天向上" | ||
+ | }, | ||
+ | methods:{ | ||
+ | add: function(){ | ||
+ | this.list.push(this.inputValue); | ||
+ | } | ||
+ | } | ||
+ | }) | ||
+ | </script> | ||
+ | |||
+ | </body> | ||
+ | </html> | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === 总结 === | ||
+ | |||
+ | # <u>v-for</u> 指令的作用:根据一个数组生成一个列表结构 | ||
+ | # <u>v-model</u> 指令的作用:双向绑定数据,可以把表单中的内容和data中的数据关联起来,可以方便设置和取值 | ||
+ | # <u>v-on</u> 指令,事件修饰符:可以绑定事件,结合事件修饰符可以做一些限制,本例中使用 .enter 来限制触发的按键 | ||
+ | # 通过 <u>审查元素</u> 可快速定位:如果对页面布局不熟悉,可以通过 审查元素 快速定位到要操作的目标元素 |
2023年8月9日 (三) 02:27的最新版本
https://www.bilibili.com/video/BV12J411m7MG/?p=19
- 生成列表结构(v-for 数组)
- 获取用户输入(v-model)
- 回车,新增数据(v-on .enter 添加数据)
完整代码
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>v-model 指令</title>
</head>
<body>
<!--主体区域-->
<section id="todoapp">
<!--输入框-->
<header class="header">
<h1>小黑记事本</h1>
<input autofocus="autofocus" autocomplete="off" placeholder="请输入任务" class="new-todo" v-model="inputValue" @keyup.enter="add"/>
</header>
<!--列表区域-->
<section class="main">
<ul class="todo-list">
<li class="todo" v-for="(item, index) in list">
<div class="view">
<span class="index">{{ index+1 }}</span>
<label>{{ item }}</label>
<button class="destroy">x</button>
</div>
</li>
</ul>
</section>
<!--统计和清空-->
<footer class="footer">
</footer>
</section>
<!--底部-->
<footer class="info"></footer>
<!-- 开发环境版本,包含了有帮助的命令行警告 -->
<script src="vue.js"></script>
<script>
var app = new Vue({
el:"#todoapp",
data: {
message:"hello world",
list:[
"写代码","吃饭饭","睡觉觉"
],
inputValue:"好好学习,天天向上"
},
methods:{
add: function(){
this.list.push(this.inputValue);
}
}
})
</script>
</body>
</html>
总结
- v-for 指令的作用:根据一个数组生成一个列表结构
- v-model 指令的作用:双向绑定数据,可以把表单中的内容和data中的数据关联起来,可以方便设置和取值
- v-on 指令,事件修饰符:可以绑定事件,结合事件修饰符可以做一些限制,本例中使用 .enter 来限制触发的按键
- 通过 审查元素 可快速定位:如果对页面布局不熟悉,可以通过 审查元素 快速定位到要操作的目标元素