“Vue 小黑记事本 隐藏”的版本间的差异
跳到导航
跳到搜索
Jihongchang(讨论 | 贡献) (建立内容为“https://www.bilibili.com/video/BV12J411m7MG/?p=23”的新页面) |
Jihongchang(讨论 | 贡献) |
||
第1行: | 第1行: | ||
https://www.bilibili.com/video/BV12J411m7MG/?p=23 | https://www.bilibili.com/video/BV12J411m7MG/?p=23 | ||
+ | |||
+ | === 实现功能分析 === | ||
+ | |||
+ | # 没有数据时,隐藏元素(<u>v-show</u> <u>v-if</u> <u>数组非空</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" @click="remove(index)">x</button> | ||
+ | </div> | ||
+ | </li> | ||
+ | </ul> | ||
+ | </section> | ||
+ | |||
+ | <!--统计和清空--> | ||
+ | <footer class="footer" v-show="list.length>0"> | ||
+ | <span class="todo-count" v-if="list.length > 0"> | ||
+ | <strong>{{ list.length }}</strong> items left | ||
+ | </span> | ||
+ | <button v-show="list.length>0" class="clear-completed" @click="clear"> | ||
+ | Clear | ||
+ | </button> | ||
+ | </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); | ||
+ | }, | ||
+ | remove: function(index){ | ||
+ | console.log("删除"); | ||
+ | console.log(index); | ||
+ | this.list.splice(index, 1); | ||
+ | }, | ||
+ | clear: function() { | ||
+ | this.list = []; | ||
+ | } | ||
+ | } | ||
+ | }) | ||
+ | </script> | ||
+ | |||
+ | </body> | ||
+ | </html> | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === 记事本小程序总结 === | ||
+ | |||
+ | * 列表结构可以通过 <u>v-for</u> 指令结合数据生成 | ||
+ | * <u>v-on</u> 结合事件修饰符可以对事件进行限制,比如 <u>.enter</u> | ||
+ | * <u>v-on</u> 在绑定事件时可以传递自定义参数 | ||
+ | * 通过 <u>v-model</u> 可以快速地设置和获取表单元素的值 | ||
+ | * 基于数据的开发方式 |
2023年8月9日 (三) 03:46的最新版本
https://www.bilibili.com/video/BV12J411m7MG/?p=23
实现功能分析
- 没有数据时,隐藏元素(v-show v-if 数组非空)
完整代码
<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" @click="remove(index)">x</button>
</div>
</li>
</ul>
</section>
<!--统计和清空-->
<footer class="footer" v-show="list.length>0">
<span class="todo-count" v-if="list.length > 0">
<strong>{{ list.length }}</strong> items left
</span>
<button v-show="list.length>0" class="clear-completed" @click="clear">
Clear
</button>
</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);
},
remove: function(index){
console.log("删除");
console.log(index);
this.list.splice(index, 1);
},
clear: function() {
this.list = [];
}
}
})
</script>
</body>
</html>
记事本小程序总结
- 列表结构可以通过 v-for 指令结合数据生成
- v-on 结合事件修饰符可以对事件进行限制,比如 .enter
- v-on 在绑定事件时可以传递自定义参数
- 通过 v-model 可以快速地设置和获取表单元素的值
- 基于数据的开发方式