Blogger Information
Blog 17
fans 0
comment 0
visits 8216
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
vue常用指令以及列表渲染+条件渲染和事件处理
想做一个躺平的程序员
Original
781 people have browsed it

1.vue常用指令

createappp:创建vue实例
mount:挂载vue应用
![](https://img.php.cn/upload/image/782/576/844/1650945961720616.png

v-text指令:更新textConent

v-html指令:更新元素的innerHTML,可以解析html标签

  1. 注意:内容按普通 HTML 插入 - 不会作为 Vue 模板进行编译

2.vue条件渲染

v-show:元素始终会渲染并保留在dom中,v-show只是简单地切换元素display样式

  1. 注意,v-show 不支持 <template> 元素,也不支持 v-else

v-if:用于条件性地渲染一块内容,这块内容只会在指令的表达式返回true被渲染

  1. <div class="app">
  2. <div v-show="inshow">我是不显示的</div>
  3. <div v-if="inif">我是显示的</div>
  4. <div v-else>我是次要显示内容</div>
  5. </div>
  6. <script>
  7. //createapp:创建vue实例
  8. // mount:挂载vue应用;
  9. const app=Vue.createApp({
  10. data(){
  11. return{
  12. msg:'hello word',
  13. isshow:false,
  14. inif:false,
  15. }
  16. }
  17. }).mount('.app');
  18. </script>

我们可以看到 v-show只是简单的将display切换为none

2.1 v-if与v-show

  1. v-if 是“真正”的条件渲染,因为它会确保在切换过程中,条件块内的事件监听器和子组件适当地被销毁和重建

  2. v-if 也是惰性的:如果在初始渲染时条件为假,则什么也不做一直到条件第一次变为真时,才会开始渲染条件块

  3. 相比之下,v-show 就简单得多——不管初始条件是什么,元素总是会被渲染,并且只是简单地基于 CSS 进行切换

  4. 一般来说,v-if 有更高的切换开销,而 v-show 有更高的初始渲染开销。因此,如果需要非常频繁地切换,则使用 v-show 较好;如果在运行时条件很少改变,则使用 v-if 较好

3.列表渲染

v-for:基于一个数组或对象来渲染一个列表,指令需要使用(item,index) of items 形式的语法

参数说明: items是源数据数组,item则是被迭代的数组元素的别名,index是索引,保持唯一性

  1. <div class="app">
  2. <ul>
  3. <li v-for="(item,index) of info" :key="index">
  4. {{item}}
  5. </li>
  6. </ul>
  7. </div>
  1. <script>
  2. //createapp:创建vue实例
  3. // mount:挂载vue应用;
  4. const app=Vue.createApp({
  5. data(){
  6. return{
  7. info:["李四","张三","王五","吴多星"],
  8. }
  9. }
  10. }).mount('.app');
  11. </script>

页面效果

4. v-model和style绑定与class

4.1

v-model:实现表单输入和应用状态之间的双向绑定,它负责监听用户的输入事件来更新数据

v-model的修饰符:lazy,number,trim,
  1. v-model.lazy:值修改操作完成之后才会发生变化。
  2. v-model.number:值修改,保存其值为number类型
  3. v-model.trim:自动过滤用户输入的首尾空白字符
  1. <div class="app">
  2. <input type="text" name="" id="" v-model.trim="msg">
  3. <p>
  4. {{msg}}
  5. </p>
  6. </div>
  7. `
  1. <script>
  2. //createapp:创建vue实例
  3. // mount:挂载vue应用;
  4. const app=Vue.createApp({
  5. data(){
  6. return{
  7. msg:'',
  8. }
  9. }
  10. }).mount('.app');
  11. </script>

4.2

v-bind: 用于绑定html属性,由于复用性强,因此可用 : 来简写

  1. <style>
  2. .active{
  3. color: red;
  4. }
  5. </style>
  6. <div class="app">
  7. <!-- 修改样式 -->
  8. <p v-bind:style="info">今天你努力了吗</p>
  9. <!-- 可以通过切换class来改变css样式 -->
  10. <p :class="{active:isactive}">
  11. class改变样式
  12. </p>
  13. </div>
  1. <script>
  2. //createapp:创建vue实例
  3. // mount:挂载vue应用;
  4. const app=Vue.createApp({
  5. data(){
  6. return{
  7. info:{
  8. background:"blue",
  9. },
  10. isactive:true
  11. }
  12. }
  13. }).mount('.app');
  14. </script>

页面效果

4.3事件

  1. vue中通过v-on(缩写为 @ 符号)来监听dom事件,用法为v-on:事件名="test" @事件名="test"
点击事件修饰符
  1. prevent:阻止默认事件(常用)
  2. stop:阻止事件冒泡(常用)
  3. once:事件只触发一次(常用)
  4. capture:使用事件的捕获模式
  5. self:只有event.target是当前操作的元素才触发事件
  6. passive:事件的默认行为立即执行,无需等待事件回避执行完毕
  1. <div class="app">
  2. <button v-on:click="show">显示</button>
  3. <p v-show="isinfo">{{msg}}</p>
  4. </div>
  1. <script>
  2. //createapp:创建vue实例
  3. // mount:挂载vue应用;
  4. const app=Vue.createApp({
  5. data(){
  6. return{
  7. msg:"hello word",
  8. isinfo:false
  9. }
  10. },
  11. methods:{
  12. show(ev){
  13. this.$data.isinfo=true;
  14. },
  15. }
  16. }).mount('.app');
  17. </script>

没点击显示按钮之前

点击显示按钮之后

Correcting teacher:PHPzPHPz

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post