HTML简单实现v-if与v-for与v-model

Vue启动!!

  • 首先VIewModel将View和Model连接一起,Model的数据改变View的数据也变

  • 使用Visual Studio Code

  • 启动Vue需要vue.js插件和导入CDN(包)

  • vue.js插件:CTRL + shift + x 在搜索栏搜

  • 索vue.js安装即可

  • CDN: https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js

  • VS创建一个.html的文件

  • <div id="app">
           {{message}}
       </div>
       <script>
         let vn = new Vue ({
           el: "#app",//el为元素的意思,选取id选择器
             //data更改数据
           data: {
           message: "Vue启动"
           }
         });
       </script>
  • < div>< /div>块为view层(模板)

  • < script>< /script>块为Model层(数据)

  • ViewModel的体现:在浏览器的控制面板(Console),输入

    vn.massage = "原神启动"

    ViewModle的双向绑定,网页随机刷新。

  • bind等被称为指令,指令前面有前缀v-,表示Vue的特殊特性,该指令的意思是: 将元素节点的title特性和Vue的实列massage属性统一起来

    vue的循序结构

    • if的条件判断

  • <div id="app">
           <h1 v-if="type==='A'">A</h1>
           <h1 v-else-if="type==='B'">B</h1>
           <h1 v-else-if="type==='D'">D</h1>
           <h1 v-else>C</h1>
        </div>
        <script>
            let vm = new Vue ({
                el: "#app",
                data: {
                    type: 'A'
                }
            });
        </script>
  • for循环语句,与foreach()结构相似

  • 输入的数据框中[ { } , { } , { } ]用于输入多组数据

  • v-model指令在表单< input>,< textarea>,< select>在元素上创建双向数据绑定,它赋值监听用户输入事件来更新数据,

  • <div id="app">
        //输入的文本: <textarea v-model = "message"/>{{message}}
        //输入的文本: <textarea name="" cols="20" rows="10" v-model="message"></textarea>{{message}}
            输入的文本: <input type="text" v-model = "message">{{message}}
            //{{message}}用于输出用户看到的数据。其数据随文本框数据的改变而改变
        </div>
        <script>
            let vm = new Vue({
                el: "#app",
                data: {
                    message: "123"
                }
            });
        </script>

    以下案例用v-model指令对事件进行监听

  • <div id="app">
            输入的文本: <input type="radio" name="sex" value="男" v-model="xiaoming">男
                        <input type="radio" name="sex" value="女" v-model="xiaoming">女
            //{{message}}用于输出用户看到的数据。其数据随文本框数据的改变而改变
            <p>
                选中了谁:{{xiaoming}}
            </p>
        /*
            选择框:
            <select v-model="select">
                <option value="disabled">--请选择--</option>
                <option>A</option>
                <option>B</option>
                <option>C</option>
            </select> 
        */
        </div>
        <script>
            let vm = new Vue({
                el: "#app",
                data: {
                    xiaoming: "123"
                    //select: ""
                }
            });
        </script>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0, user-scalable=no"> <title>vue购物车商品累加结算代码  </title> <!--css类引用--> <link rel="stylesheet" href="js/layui/css/layui.css?3.1.64" /> <link rel="stylesheet" href="js/eleme-ui/index.css?3.1.64" /> <link rel="stylesheet" href="css/ShoppingCart.css?3.1.64" /> </head> <body> <!--主要内容--> <div class="row " id="myVue" v-cloak> <div class="col-lg-10 col-lg-offset-1" > <div class="layui-form"> <table class="ShopCartTable layui-table"> <thead> <tr> <th class="selectLeft"> <template> <el-checkbox  @change="checkedAllBtn(checkedAll)" v-model="checkedAll">全选</el-checkbox> </template> <span class="selectLeftGoods">商品或服务名称</span> </th> <th>单价</th> <th>数量</th> <th>小计</th> <th>操作</th> </tr> </thead> <tbody> <tr v-for="(tabledatas,index) in shopTableDatas"> <td  class="selectLeft"> <template> <el-checkbox @change="checkedRadioBtn(tabledatas)" v-model="tabledatas.checked"></el-checkbox> </template> <span class="goodName"> <img /> </span> <span class="goodName goodsName"> <h2 class="goodname" v-text="tabledatas.name"></h2> <p class="goodGary"> <span>供应商:</span> <span v-text="tabledatas.supplier"></span> </p> <p class="goodGary"> <span>发货地:</span> <span v-text="tabledatas.ConPlace"></span> </p> </span> </td> <td class="danPrice">{{tabledatas.price | moneyFiler}}</td> <td> <i @click="goodNum(tabledatas,-1)" class="fa  deleteBtn" aria-hidden="true">-</i> <input v-model="tabledatas.num" type="text" class="form-control numInput" aria-label="..."> <i @click="goodNum(tabledatas,1)" class="fa  addBtn" aria-hidden="true"> </i> </td> <td> <p class="totalPrice">{{tabledatas.price*tabledatas.num | moneyFiler}}</p> </td> <td class="gongneng"> <p class="deletegoods" @click="alertRadio(index)">删除</p> <p @click="alertmovesSavegoods(index)">移到我的收藏</p> <template v-if="tabledatas.saveandremove"> <p @click="tabledatas.saveandremove = false">加入收藏</p> </template> <template v-else> <p :class="{'saveCheck':!tabledatas.saveandremove}" @click="tabledatas.saveandremove = true">取消收藏</p> </template> </td> </tr> </tbody> </table> <div class="row tablefooter"> <template> <el-checkbox @change="checkedAllBtn(checkedAll)" v-model="checkedAll">全选</el-checkbox> </template> <span class="removeMuch" @click="alertMuch">删除选中的商品或服务</span> <span class="removeSaves" @click="alertMuchgoods">移到我的收藏</span> <span class="servicenum">已选择<span class="goodsNum">{{goodsNum}}</span>件商品<span class="goodsNum">{{serviceNum}}</span>项服务</span> <span class="totalclassPoin">总价:<span class="totalMoneyClass">{{totalMoney | moneyFiler}}</span></span> <span @click="saveData" class="SettlementBtn">去结算</span> </div> </div> </div> </div> <!--js类引用--> [removed][removed] [removed][removed] [removed][removed] <div 0; font:normal 14px/24px 'MicroSoft YaHei';">  </div> </body> </html> 这是一个j购物车商品累加结算效果,需要的朋友可以直接下载使用,更多特效代码尽在PHP中文网。
条件语句 v-if ,v-else,v-else-if。 后两者必须放在v-if之后 循环语句 v-for 指令需要以 site in sites 形式的特殊语法, sites 是源数据数组并且 site 是数组元素迭代的别名。 Computed VS methods 我们可以使用 methods 来替代 computed,效果上两个都是一样的,但是 computed 是基于它的依赖缓存,只有相关依赖发生改变时才会重新取值。而使用 methods ,在重新渲染的时候,函数总会重新调用执行。 事件修饰符 Vue.js 为 v-on 提供了事件修饰符来处理 DOM 事件细节,如:event.preventDefault() 或 event.stopPropagation()。Vue.js通过由点(.)表示的指令后缀来调用修饰符。 <!-- 阻止单击事件冒泡 --> <a stop="doThis"></a> <!-- 提交事件不再重载页面 --> <form v-on:submit.prevent="onSubmit"></form> <!-- 修饰符可以串联 --> <a prevent="doThat"></a> <!-- 只有修饰符 --> <form v-on:submit.prevent></form> <!-- 添加事件侦听器时使用事件捕获模式 --> <div v-on:click.capture="doThis">...</div> <!-- 只当事件在该元素本身(而不是子元素)触发时触发回调 --> <div v-on:click.self="doThat">...</div> <!-- click 事件只能点击一次,2.1.4版本新增 --> <a 按键修饰符 为最常用的按键提供了别名: <input v-on:keyup.enter="submit"> <!-- 缩写语法 --> <input @keyup.enter="submit"> Vue.js为最常用的两个指令v-bind和v-on提供了缩写方式。v-bind指令可以缩写为一个冒号,v-on指令可以缩写为@符号。 全部的按键别名: .enter .tab .delete (捕获 "删除" 和 "退格" 键) .esc .space .up .down .left .right .ctrl .alt .shift .meta 实例 组件部分不太会,em...... 钩子函数 指令定义函数提供了几个钩子函数(可选): bind: 只调用一次,指令第一次绑定到元素时调用,用这个钩子函数可以定义一个在绑定时执行一次的初始化动作。 inserted: 被绑定元素插入父节点时调用(父节点存在即可调用,不必存在于 document 中)。 update: 被绑定元素所在的模板更新时调用,而不论绑定值是否变化。通过比较更新前后的绑定值,可以忽略不必要的模板更新(详细的钩子函数参数见下)。 componentUpdated: 被绑定元素所在模板完成一次更新周期时调用。 unbind: 只调用一次, 指令与元素解绑时调用。 钩子函数的参数有: el: 指令所绑定的元素,可以用来直接操作 DOM 。 binding: 一个对象,包含以下属性: name: 指令名,不包括 v- 前缀。 value: 指令的绑定值, 例如: v-my-directive="1 + 1", value 的值是 2。 oldValue: 指令绑定的前一个值,仅在 update 和 componentUpdated 钩子中可用。无论值是否改变都可用。 expression: 绑定值的表达式或变量名。 例如 v-my-directive="1 + 1" , expression 的值是 "1 + 1"。 arg: 传给指令的参数。例如 v-my-directive:foo, arg 的值是 "foo"。 modifiers: 一个包含修饰符的对象。 例如: v-my-directive.foo.bar, 修饰符对象 modifiers 的值是 { foo: true, bar: true }。 vnode: Vue 编译生成的虚拟节点。 oldVnode: 上一个虚拟节点,仅在 update 和 componentUpdated 钩子中可用。 样式叠加测试文件:test2/addStyle.html 属性覆盖测试文件:test2/cover.html 自定义组件测试文件:test2/customComponent.html get请求测试文件:test2/get.html post请求测试文件:test2/post.html vue初探:test2/helloVue.html,test2/helloVue2.html input 和 textarea 元素中使用 v-model 实现双向数据绑定:test2/inputAndtextarea.html 两个按钮用于切换不同的列表布局:test2/layout.html 导航测试:test2/navigation.html 订单列表:test2/orderList.html 实时变更:test2/real-time-change.html 模糊搜索:test2/search.html 购物车:test2/shoppingCart.html 双向绑定:test2/two-way-binding.html 字符转换:test2/upperCase.html class属性绑定:test2/v-bind.html href 属性绑定:test2/v-test.html vue路由:test2/vueRouter.html watch监听时间:watchJianTing.html

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值