Vue基础——内置指令2

+ 条件显示指令 v-if 和 v-show

      V-show的本质:通过CSS样式 display:none来控制显示与否的

      V-if 和 v-show 的区别:

                V-if:  动态添加移除元素DOM节点(效率低)

                V-show:通过把CSS样式display:none;来控制DOM节点显示隐藏(效率高)

+ 列表渲染指令 v-for

     v-for:遍历

     <li v-for="(item,index) in list">  要遍历的项当中的参数有几个就写几个,大于1个就用括号括起来

      V-if与v-for一般不合用(一般会把v-if提前,或者过滤出需要判断的数据放入一个新的数组中使用)

+ 表单处理指令 v-model

     v-model:实现表单数据双向绑定  

     message的值  <=====>  输入框的值

     1. 获取输入框值

          event.target.value

     2. 输入框内容改变执行 input事件

           message =  event.target.value

     vue内部会把data选项中的return里面的数据动态绑定到vue实例对象上

条件显示指令 

        const { createApp } = Vue
        const App = {
            data() {
                return {
                    title: 'v-for指令',
                    list: [
                        { id: 1001, name: 'javascript高级编程', price: 88.98 },
                        { id: 1002, name: 'vue高级编程', price: 108.89 },
                        { id: 1003, name: 'css高级编程', price: 68.89 },
                    ],
                    message: 'vue学习',
                    content: '',
                    state: false
                }
            },
            /*html*/
            template: `

                <p>----条件显示指令-----</p>
                <p v-if="onLine === 0">在线</p>
                <p v-else-if="onLine === 1">隐身</p>
                <p v-else>离线</p>
                <p v-show="show">显示</p>
            `
        }
        createApp(App).mount('#app')

列表渲染指令 v-for 

template: `
<p>----列表渲染指令 v-for-----</p>
<h2>{{title}}</h2>,
<ul>
   <li v-for="(item,index) in list">{{index}} {{item.id}} {{item.name}} {{item.price}}</li>    
</ul>

<table>
   <tr>
     <th>索引号</th>
     <th>ID</th>
     <th>名称</th>
     <th>价格</th>
   </tr>
   <tr v-for="(item,index) in list ">
     <td>{{ index }}</td>   
     <td>{{ item.id }}</td>   
     <td>{{ item.name }}</td>   
     <td>{{ item.price }}</td>   
   </tr>   
</table>
`

表单处理指令 v-model 

methods: {
    // methods选项方法不能用箭头函数,因为箭头函数没有this
    bindInput() {
        console.log('bindInput >>>>', event.target.value)
        //2. this: vue实例对象
        this.message = event.target.value
    }
},
template: `
<p>-----表单处理指令 v-model----</p>
<p>{{message}}</p>
<input type="text" :value="message" @input="bindInput"/>

<p>v-model指令  content <-> inputValue</p>
<p>{{ content }}</p>
<input type="text" v-model="content"/>

<p>复选框</p>
{{state?'yes':'no'}}
<input type="checkbox" v-model="state"/>
`

如何消除vue未加载时页面显示大括号闪烁的问题? 使用v-clock

            如果网速慢,而该标签内容是变量没有请求响应回来的时候,页面上先不显示该标签(vue给该标签加了css样式        ),当响应回来的时候改标签默认将css样式去除。此指令可以解决使用插值表达式页面闪烁问题将该指令加在html标签中时,style中设置样式[v-clock]{display:none}

    <style>
        [v-clock]{
            display: none;
        }
    </style>

 

好的,让我们开始下拉列表框的v-model绑定实训。 在这个实训中,我们将使用Vue.js来创建一个简单的下拉列表框,并将其与v-model指令绑定,以便在用户选择选项时更新数据。 首先,我们需要创建一个Vue实例,并定义一个名为options的数据属性,它将包含下拉列表框中的选项。我们还将定义一个名为selectedOption的数据属性,它将包含用户当前选择的选项。 ```html <div id="app"> <select v-model="selectedOption"> <option v-for="option in options" :value="option">{{ option }}</option> </select> <p>您选择的选项是:{{ selectedOption }}</p> </div> ``` 在这个模板中,我们使用了v-model指令来绑定selectedOption属性到下拉列表框。我们还使用了v-for指令来迭代options数组,并为每个选项创建一个<option>元素。 接下来,我们需要在Vue实例中定义options和selectedOption属性。我们将options设置为一个包含三个选项的数组,以演示如何处理多个选项。我们将selectedOption设置为数组中的第一个选项,以便在页面加载时将其设置为默认选项。 ```javascript new Vue({ el: '#app', data: { options: ['选项1', '选项2', '选项3'], selectedOption: '选项1' } }) ``` 现在,当用户选择下拉列表框中的选项时,selectedOption属性将自动更新。我们可以在模板中使用{{ selectedOption }}来显示当前选择的选项。 完成以上步骤后,您可以在浏览器中查看效果。当您选择不同的选项时,页面将自动更新以显示当前选择的选项。 希望这个实训能够帮助你学习v-model指令的使用,感谢您的阅读。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LQaNB@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值