gpt4 book ai didi

Vue过滤案例、按键修饰符、数据双向绑定

转载 作者:我是一只小鸟 更新时间:2023-02-15 22:31:12 24 4
gpt4 key购买 nike

目录
  • Vue过滤案例、按键修饰符、数据双向绑定
    • 1、v-for能循环的类型
    • 2、js的几种循环方式
    • 3、key值的解释
    • 4、数组、对象的检测与更新
    • 5、input的几个事件
    • 6、事件修饰符
    • 7、按键修饰符
    • 8、表单控制
    • 9、过滤案例
    • 10、购物车案例

Vue过滤案例、按键修饰符、数据双向绑定

1、v-for能循环的类型

  1. 数组、带索引
  2. 对象、默认value值、也可以是key值
  3. 字符串、带索引
  4. 数字、带索引
    image

2、js的几种循环方式

  1. js的循环基于索引的循环
  2. js的in循环拿到的是索引
  3. es6语法 of循环
  4. 数组的方法 forEach循环
  5. jQuery的循环 循环数组、对象

3、key值的解释

之前我们用v-for放在标签上,其实标签上还可以放key,但是key值必须是唯一,不然就程序报错,用属性指令绑定一个变量,key的值每次都不一样,这样可以加速虚拟DOM的替换。想要专业一些那就尽量写这个方式 。

                        
                          <div v-for="item in 8" :key="item">{{item}}</div>

                        
                      

4、数组、对象的检测与更新

对象,新增一个key-value,发现页面没有变化,以后设置下即可.

                        
                          Vue.set(this.info,"hobby’,'篮球') 

                        
                      

image

5、input的几个事件

属性名称 中文名称 解释用法
click 点击事件 点击按钮时触发
input 输入事件 输入内容时触发
change 改变事件 发生变化时触发
blur 失去焦点 失去焦点时触发
focus 聚焦事件 焦点聚焦时触发

image

6、事件修饰符

事件修饰符 解释含义
.stop 只处理自己的阻止事件冒泡
.self 只处理自己的不处理子事件
.prevent 阻止a链接的跳转
.once 事件只触发一次(适用于抽奖页面)

7、按键修饰符

类似于键盘映射,按了键盘的那个键就会触发其对应的函数并执行下面介绍一下具体用法 箭头函数写法演变过程 。

                        
                          定义函数
@keyup="handleKeyUp"
按键修饰符
@keyup.enter # 可以是键盘对应的英文单词
@keyup.13 # 或数字对应关系也是可以的

# keycode对照表链接
https://www.cnblogs.com/guochaoxxl/p/16753266.html

                        
                      

8、表单控制

  1. radio 单选
  2. checkbox 单选和多选

9、过滤案例

                        
                          <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="js/Vue.js"></script>
</head>
<body>
<div id="aaa">
    <h1>filter example</h1>
    <p>pls enter sth: <input type="text" v-model="myText" @input="handleInput"></p>
    <ul>
        <li v-for="item in newDataList">{{item}}</li>
    </ul>
</div>
</body>
<script>
    var vm = new Vue({
        el:'#aaa',
        data:{
            myText:'',
            dataList:['a','an','any','be','beyond','cs','css'],
            newDataList:['a','an','any','be','beyond','cs','css'],
        },
        methods:{
            handleInput(){
                this.newDataList = this.dataList.filter(
                    item => item.indexOf(this.myText) >=0
                )
            },
        },
    })
</script>
</html>

                        
                      

image

10、购物车案例

                        
                          <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="js/Vue.js"></script>
    <!-- 最新版本的 Bootstrap 核心 CSS 文件 -->
    <link rel="stylesheet" href="https://cdn.bootcss.com/twitter-bootstrap/3.3.7/css/bootstrap.min.css">
</head>
<body>
<div id="app">
    <h1 class="text-center ">SHOPPING CAR LIST</h1>
    <div>
        <div class="row">
            <div class="col-lg-4"></div>
            <div class="col-lg-4">
                <table class="table table-hover" @click="clickToSum">
                    <thead>
                    <tr>
                        <th>goods</th>
                        <th>price</th>
                        <th>quantity</th>
                        <th>select</th>
                        <th>
                        </th>
                    </tr>
                    </thead>
                    <tbody>
                    <tr v-for="(shopping, index) in shoppingList" :key="index">
                        <th>{{shopping.name}}</th>
                        <th>{{shopping.price}}</th>
                        <th><input type="number" v-model="shopping.num" width="10px"></th>
                        <th><input type="checkbox" v-model="selectList" :value="index"></th>
                    </tr>
                    </tbody>
                </table>

                <p>
                    <span>total:{{summary}}RMB</span>
                </p>
            </div>
            <div class="col-lg-4"></div>
        </div>
    </div>
</div>
</body>
<script>
    var vm = new Vue({
        el: '#app',
        data: {
            allSelect: false,
            selectList: [],
            shoppingList: [
                {id: 1, name: 'iPhone', price: 13000, num: 2},
                {id: 2, name: 'iPad', price: 10000, num: 2},
                {id: 3, name: 'laptop', price: 15000, num: 2},
            ],
            summary: 0
        },
        methods: {
            clickToSum() {
                setTimeout(this.getSum, 10)
            },
            getSum() {
                var total = 0
                for (index of this.selectList) {
                    let shopping = this.shoppingList[index]
                    total += shopping.price * shopping.num
                }
                this.summary = total
            },
        },
    })
</script>
</html>

                        
                      

image

最后此篇关于Vue过滤案例、按键修饰符、数据双向绑定的文章就讲到这里了,如果你想了解更多关于Vue过滤案例、按键修饰符、数据双向绑定的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com