js循环方式、v-model、事件处理、表单控制、购物车案例

发布时间 2023-09-18 17:15:09作者: 别管鱼油我了

js循环方式

js循环 for(),基于索引的循环

let :es6语法,用于定义变量

const:用于定义常量

var以后尽量少用

、for循环写法一:

 for循环写法二:

 列表循环

 循环方式二:in循环

基于迭代的循环,依赖于索引取值

直接console.log是索引值,只有list[i]才是要取的值

 循环方式三:of循环

和python中的in一样,这个直接console.log是要取的值

 数组的方法:循环 forEach

第一个值是正常取值,第二个值是索引值

 jq的取值

 key值的解释

vue中使用v-for的时候,在标签上会看到key属性

key = ''item'' 用的是属性指令

key对应的值必须是唯一的

在循环的标签上,加key值的好处是,加速dom的替换

区别只在循环的变量变化时,效率高低,但是一定要注意的是:value必须是唯一

 

Vue.set的使用

以后可能遇到数据变了,页面没有变的情况

不能直接更改,要借助于vue提供的方法,Vue.Set更改

以后只要发现数据变了,页面没变,就先用Vue.set试一下

 代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.4/jquery.js"></script>
    <link href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/3.4.1/css/bootstrap.min.css" rel="stylesheet">
    <script src="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/3.4.1/js/bootstrap.min.js"></script>
    <script src="js/vue.js"></script>
</head>
<body>
<div id="app">
    <div class="container-fluid">
        <div class="row">
            <div class="col-md-6 col-md-offset-3">
                <div class="text-center">
                    <button class="btn btn-danger" @click="handleshow">点击显示购物车</button>
                    <button class="btn btn-danger" @click="handledel">删除最后一条</button>
                    <button class="btn btn-danger" @click="handleres">反转</button>
                    <button class="btn btn-danger" @click="handlefirst">变更第一条</button>
                </div>
                <table class="table table-bordered">
                    <thead>
                    <tr>
                        <th>id名</th>
                        <th>商品名称</th>
                        <th>商品价格</th>
                        <th>商品数量</th>
                    </tr>
                    </thead>
                    <tbody>
                    <tr v-for="i in good_list" v-show="isShow">

                        <td>{{i.id}}</td>
                        <td>{{i.name}}</td>
                        <td>{{i.price}}</td>
                        <td>{{i.count}}</td>
                    </tr>
                    </tbody>
                </table>
            </div>
        </div>
    </div>

</div>
</body>
<script>
    var vm = new Vue({
        el: '#app',
        data: {
            good_list: [],
            isShow: false
        },
        methods: {
            handleshow() {
                this.good_list = [
                    {id: 1, name: '钢笔', price: 9.9, count: 4},
                    {id: 2, name: '足球', price: 99, count: 4},
                    {id: 3, name: '篮球', price: 44, count: 32},
                    {id: 4, name: '电脑', price: 1299, count: 48},
                    {id: 5, name: '鼠标', price: 23, count: 4},
                    {id: 6, name: '脸盆', price: 8, count: 4},
                ]
                this.isShow = !this.isShow
            },
            handledel() {
                this.good_list.pop()
            }, handleres() {
                this.good_list.reverse()
                console.log(this.good_list)
            },
            handlefirst() {
                Vue.set(this.good_list, 0, {id: 1, name: '专辑', price: 200, count: 1})
            }

        }
    })
</script>

</html>

v-model的使用

v-model和value的区别,单项和双向的区别,v-model在控制台改变,页面数据也会改变,页面数据改变控制台也改变,:value="username" 对input标签做绑定,它只能单项的绑定,js变量变,页面会变,页面变,js变量不会变
v-model可以将结果返回,value不会,但是会将当前的值放入文本框中
v-model:

value:

<body>
<div id="app">
    <div class="container-fluid">
        <div class="row">
            <div class="col-md-6 col-md-offset-3">
                <div class="text-center">

                    <h3>v-model的使用</h3>
                    <p>用户名:<input type="text" v-model="username" ></p>
                    <p>密码:<input type="password" v-model="password"></p>
                    <button class="btn btn-info" @click="handlelogin">登录</button>
                </div>
            </div>
        </div>
    </div>

</div>

</body>
<script>
    var vm = new Vue({
        el: '#app',
        data:{
            username:'',
            password:''
        },
        methods:{
        handlelogin(){
            console.log(this.username,this.password)
        }
        }
    })
</script>
</html>