当前位置: 首页 > news >正文

专教做美食的网站江苏搜索引擎优化公司

专教做美食的网站,江苏搜索引擎优化公司,wordpress迁移需要重新安装,专业网站建设流程目录 一 v-model表单元素 1.1 v-model绑定文本域的value 1.1.1 lazy属性:光标离开再发请求 1.1.2 number属性:如果能转成number就会转成numer类型 1.1.3 trim属性:去文本域输入的前后空格 1.2v-model绑定单选checkbox 1.3代码展示 二 …

目录

一 v-model表单元素

1.1 v-model绑定文本域的value

1.1.1 lazy属性:光标离开再发请求

1.1.2 number属性:如果能转成number就会转成numer类型

1.1.3 trim属性:去文本域输入的前后空格

1.2v-model绑定单选checkbox

1.3代码展示

二 v-for循环指令

三 计算属性

四 侦听器


一 v-model表单元素

        v-model其实我自己就是单纯的把他理解成双向绑定指令。

        和v-bind一样都是操作数据,只是这个一般用在表单中。 

1.1 v-model绑定文本域的value

<!-- v-model绑定文本域的value ,如果有value会覆盖掉value属性--><!-- lazy属性:光标离开再发请求 --><input type="text" placeholder="请输入用户名" v-model.lazy="username" value="默认值"/><h2>{{username}}</h2>

我们用v-model绑定username,当我们在文本框中输入值后,对应的username也会进行数据的双向绑定,从而展示在页面上,效果如下:

1.1.1 lazy属性:光标离开再发请求

如上面所示,给v-model加上lazy属性,可以实现光标离开后再执行。

1.1.2 number属性:如果能转成number就会转成numer类型

<!-- number属性:如果能转成number就会转成numer类型,比如文本域中输入数字原本时string,但是加上这个属性就会转成number --><input type="text" name="age" v-model.number="age"><button @click="change()">获取age类型</button><h2>age的类型:{{type}}</h2>

正常来说,type=“text”的文本域就算输入的数字,也是string类型,而是由这个.number属性,就可以把数字转成number类型,方便进行运算需求。

1.1.3 trim属性:去文本域输入的前后空格

    <!-- trim属性:去文本域输入的前后空格 --><input type="text" v-model.trim="username">    

1.2v-model绑定单选checkbox

实现代码如下:

 <!-- v-model绑定单选checkbox --><input type="radio" name ="sex" v-model="sex" value="男">男<input type="radio" name ="sex" v-model="sex" value="女">女<h2>{{sex}}</h2>

 具体逻辑如下:

效果展示:

1.3代码展示

完整代码以及注释如下:

<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><div id="app"><!-- v-model绑定文本域的value ,如果有value会覆盖掉value属性--><!-- lazy属性:光标离开再发请求 --><input type="text" placeholder="请输入用户名" v-model.lazy="username" value="默认值"/><h2>{{username}}</h2><!-- number属性:如果能转成number就会转成numer类型,比如文本域中输入数字原本时string,但是加上这个属性就会转成number --><input type="text" name="age" v-model.number="age"><button @click="change()">获取age类型</button><h2>age的类型:{{type}}</h2><!-- trim属性:去文本域输入的前后空格 --><input type="text" v-model.trim="username"><!-- v-model绑定单选checkbox --><input type="radio" name ="sex" v-model="sex" value="男">男<input type="radio" name ="sex" v-model="sex" value="女">女<h2>{{sex}}</h2><!-- v-mode绑定下拉框 --><select name="city" v-model="city"><option value="cs">长沙</option><option value="bj">北京</option><option value="sh">上海</option></select><h2>{{city}}</h2></div><script type="text/javascript" src="../vue.js"></script><script>// 1.创建appconst app = Vue.createApp({// data: option apidata: function() {return {username:""  , sex:"女" , city:"sh",age:18,type:""}},methods:{change(){this.type = typeof this.age}}})// 2.挂载appapp.mount("#app")</script>
</body>
</html>

 效果图如下:

二 v-for循环指令

         一般用在表格展示数据的时候。

        直接展示表格循环获取数据的代码:

        还有可以直接获得数组的下标index:

        完整代码展示:

<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><div id="app"><h2>列表展示</h2><ul><!-- 从数组arr中取出值name --><li v-for = "name in arr">{{name}}</li></ul><ul><!-- 从数组arr中取出值name和对应的小标index --><li v-for = "(name,index) in arr">{{index}}--{{name}}</li></ul><h2>学生信息展示</h2><table><tr><th>编号</th><th>姓名</th><th>年龄</th></tr><!-- 遍历对象数组 --><tr v-for = "stu in student"> <th>{{stu.id}}</th><th>{{stu.name}}</th><th>{{stu.age}}</th></tr></table><h2>嵌套For循环</h2><table><tr><th>编号</th><th>姓名</th><th>年龄</th><th>女朋友</th></tr><!-- 遍历对象数组 --><tr v-for = "stu in student"> <th>{{stu.id}}</th><th>{{stu.name}}</th><th>{{stu.age}}</th></tr></table></div><script type="text/javascript" src="../vue.js"></script><script>// 1.创建appconst app = Vue.createApp({// data: option apidata: function() {return {arr:["张三"  , "李四"  , "王五"]   , student:[{id:1,name:"张三",age:13,girfriends:[{name:"小美",age:12},{name:"小芳",age:11}]},{id:2,name:"李四",age:15,girfriends:[{name:"小王",age:99},{name : "小玉",age:23}]}]}},})// 2.挂载appapp.mount("#app")</script>
</body>
</html>

        效果展示:

三 计算属性

         说的明白一点,就是用来监听数据的。

         这个函数里面有一个get函数,当需要获得get函数里面的属性的时候,就会自动调用这个get函数从而获取数据。

<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><style>input{width: 50px;}</style><div id="app"><input type="number" v-model="number1" >+<input type="number" v-model="number2" >={{sum}}<br><input type="number" v-model="number3" @mouseout="sum">+<input type="number" v-model="number4" @mouseout="sum">={{sum}}</div><script type="text/javascript" src="../vue.js"></script><script>// 1.创建appconst app = Vue.createApp({// data: option apidata: function() {return {number1:0,number2:0,result:0}},methods:{// sum(){//     this.result = this.number1+this.number2// }},methods:{sum:function(){return parseInt(this.number1) + parseInt(this.number2);}},// 计算属性computed:{sum:{get(){  //get方法, 当有人读取计算属性时,该计算属性的get()函数就会执行return parseInt(this.number1) + parseInt(this.number2); //此时的this就是vm}}}})// 2.挂载appapp.mount("#app")</script>
</body>
</html>

 如上面这个代码,逻辑如下:

效果如下:

四 侦听器

和计算属性作用一样,都是用来监听数据的。

不过侦听器监听的数据是你自己设置的,设置完成后,当你设置的那个数据一旦发生变化,就会调用侦听器的函数,实现数据的重新计算等。

代码如下:

<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><div id="app"><table border="1" ><tr><th></th><th>书籍名称</th><th>出版日期</th><th>价格</th><th>购买数量</th><th>操作</th></tr><tr v-for="(book ,  index) in arr"><th>{{index+1}}</th><th>{{book.name}}</th><th>{{book.day}}</th><th>{{book.price}}</th><th><button @click="subNumber(book.id) ">-</button>{{book.number}}<button @click="addNumber(book.id)">+</button></th><th><button @click="del(index)">移除</button></th></tr></table><h2>总价:{{sum()}}</h2></div><script type="text/javascript" src="../../vue.js"></script><script>// 1.创建appconst app = Vue.createApp({// data: option apidata: function() {return {total:0,nnumber:1,arr:[{id:1,name:"挪威的森林",day:"2024.10.23",price:102,number:1,},{id:2,name:"活着",day:"2024.10.11",price:66,number:1,}]}},methods:{sum(){if(this.total===0){this.arr.forEach(element => {this.total+=(element.price*element.number)});}else{return this.total}    },//    updateCount() {  //      alert(88)//     }  ,del(id){this.arr.splice(id,1)},subNumber(id){this.total+=10this.arr.forEach(element => {if(element.id===id){if(element.number>0){this.nnumber--element.number--;}}});},addNumber(id){this.arr.forEach(element => {if(element.id===id){this.nnumber++element.number++}});}},// 使用onMounted来在页面加载完成后调用updateCount  
// onMounted:(() => {  
//   updateCount();  
// }),watch: {  arr: {  handler(newValue, oldValue) {  this.total=0this.arr.forEach(element => {this.total += (element.number*element.price)}); },  deep: true // 开启深度侦听  }  }, })// 2.挂载appapp.mount("#app")</script>
</body>
</html>

逻辑如下:

 

http://www.khdw.cn/news/61624.html

相关文章:

  • 论坛网站怎么推广3天网站seo优化成为超级品牌
  • thinkphp集成wordpress网站优化及推广方案
  • 电商网页设计流程重庆网络seo
  • 旅游网站建设项目策划书新品牌推广策划方案
  • 做网站用到java吗百度的总部在哪里
  • 潍坊网站建设套餐济南网站制作
  • 三好街做网站公司seo推广具体做什么
  • 杭州做网站hzyze最新新闻事件摘抄
  • vue做pc网站衡阳百度seo
  • 贵阳网站开发公司推荐网络推广营销方法
  • 在线教育网站平台建设的意义网站建设模板
  • 国外做爰网站龙华百度快速排名
  • 南宁建站服务公司企业关键词排名优化哪家好
  • nba最新排名情况郑州seo线上推广技术
  • 如何建设机器人教育网站宜昌网站建设公司
  • 免费学校网站模板网站建设与维护
  • 个人网站需求分析营销推广活动方案
  • 营销策划包括哪几个方面班级优化大师的利和弊
  • 网络推广商城网站怎样推广app
  • 使用oss图片做网站广告优化师培训
  • 漯河做网站哪家好seo长尾关键词优化
  • iis 发布网站asp网站网页推广链接怎么做
  • 微网站建设合同2024的新闻有哪些
  • 网站备案 做网站时就需要吗盘多多网盘搜索
  • 陕西建设人才网站sem工作内容
  • 苏州网站建设完善方案论坛seo教程
  • 模板网站不利于seo吗百度集团公司简介
  • 如何用java开发appseo企业培训班
  • 如何学做网站优化2022知名品牌营销案例100例
  • 公众号做网站网页设计与制作用什么软件