目录
Vue表单
<!DOCTYPE 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>Vue的数据模型</title> <script src="../js/vue.js"></script> </head> <body> <!-- 容器 --> <div id="app"> {{msg}} {{form}} <hr /> <!--vue使用v-model进行数据绑定 如果有这些,则忽略value、checked、selected等等默认的值 ,则就是下面的value="你好"--> <!-- 即时跟新 --> <!-- 用户名:<input type="text" v-model="form.username" value="你好" /> --> <!-- lazy修饰符作用,失去焦点才跟新 --> 用户名:<input type="text" v-model.lazy="form.username" value="你好" /> <br /> <!-- 即时更新 --> <!-- 年龄:<input type="text" v-model="form.age" /> --> <!-- 不完整规则校验number --> <!-- 年龄:<input type="number" v-model.number="form.age" /> --> <!-- 去掉两端空格trim ,无论两端多长空格后有数据,都只显示一个空格 --> 年龄:<input type="text" v-model.trim="form.age" /> <br /> <!-- 选什么传递什么,互斥事件 --> 性别:<input type="radio" value="male" v-model="form.gender" />男 <input type="radio" value="female" v-model="form.gender" />女 <br /> 爱好:<input type="checkbox" value="篮球" v-model="form.hobby" />篮球 <input type="checkbox" value="足球" v-model="form.hobby" />足球 <input type="checkbox" value="游泳" v-model="form.hobby" />游泳 <input type="checkbox" value="跳舞" v-model="form.hobby" />跳舞 <br /> 城市: <select v-model="form.city"> <option value="南京">南京</option> <option value="西安">西安</option> <option value="北京">北京</option> <option value="上海">上海</option> </select> </div> <script> // 整个页面只能有一个Vue实例对象 let vm = new Vue({ el: "#app", data: { msg: "hello", form: { username: "不好", gender: "male", //多选框必须加一个数组框 []:即声明为空数组 hobby: [], //hobby: ["篮球"], //默认选中 city: "上海", //默认选中 }, }, methods: {}, }); </script> </body> </html>
Vue计算属性
<!DOCTYPE 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>Vue的数据模型</title> <script src="../js/vue.js"></script> </head> <body> <!-- 容器 --> <div id="app"> {{msg}} <hr> a: <input type="number" v-model.number="a"></input> <br> + <br> b:<input type="number" v-model.number="b"></input> <br> = <br> <div style="border: 1px solid red; width: 50px;height: 30px;">{{total}}</div> </div> <script> // 整个页面只能有一个Vue实例对象 let vm = new Vue({ el: "#app", data: { msg: "hello", a:'', b:'', }, methods: {}, //计算属性 computed:{ total(){ return this.a+this.b; } } }); </script> </body> </html>
Vue 监听
<!DOCTYPE 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>Vue的数据模型</title> <script src="../js/vue.js"></script> </head> <body> <!-- 容器 --> <div id="app"> {{msg}} <hr> a: <input type="number" v-model.number="a"></input> <br> + <br> b:<input type="number" v-model.number="b"></input> <br> = <br> <div style="border: 1px solid red; width: 50px;height: 30px;">{{total}}</div> </div> <script> // 整个页面只能有一个Vue实例对象 let vm = new Vue({ el: "#app", data: { msg: "hello", a:'', b:'', total:'' }, methods: {}, watch:{ a(newValue,oldValue){ console.log(newValue,oldValue); this.total=newValue+this.b; }, b(newValue,oldValue){ console.log(newValue,oldValue); this.total=newValue+this.a; } } }); </script> </body> </html>
Vue深度监听
<!DOCTYPE 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>Vue的数据模型</title> <script src="../js/vue.js"></script> </head> <body> <!-- 容器 --> <div id="app"> {{msg}} {{obj}} <br /> <button @click="changeObj">更改obj数据</button> </div> <script> // 整个页面只能有一个Vue实例对象 let vm = new Vue({ el: "#app", data: { msg: "hello", obj: { name: "张三", age: "24", }, }, methods: { changeObj() { this.msg = "123"; this.obj.name = "lisi"; //因为obj对象是复杂数据类型,只能是浅监听监听不到 //需要进行解构才能监听到 // this.obj = { // ...this.obj, // name: "lisi", // }; }, }, watch: { msg(newValue, oldValue) { console.log("msg数据发生变化"); }, //浅监听 // obj(newValue, oldValue) { // console.log("obj数值发生变化"); // }, //对于复杂数据类型,内部属性的改变,普通监听监听不到,如果要监听,使用深度监听 //应用数据类型的监听(浅度监听),这是监听引用地址有没有变化 //引用数据类型深度监听,内部属性发生变化时,才能监听到 //深度监听 obj: { handler(newValue, oldValue) { console.log("深度监听,obj数据发生改变"); }, deep: true, }, }, }); </script> </body> </html>
Vue组件
<!DOCTYPE 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>Vue的数据模型</title> <script src="../js/vue.js"></script> </head> <body> <!-- 容器 --> <div id="app"> {{msg}} <!-- 重复代码片段的复用:组件的封装:就是把这片重复的代码片段封装起来 --> <!-- <div> <span></span> <div></div> </div> --> <my-com></my-com> <hr /> <my-com></my-com> <!-- <div @click="const++">按钮{{comMsg}}</div> --> <!-- <div>按钮{{comMsg}}</div> --> </div> <script> //1.创建组件 组件声明 对象 let myCom = { //组件的配置信息 data() { return { comMsg: "组件内的msg", const: 1, }; }, methods: {}, template: ` <div> <span>hello Vue</span> <div>Hello Vue</div> <div>按钮{{comMsg}}</div> </div> `, }; //2.组件注册 //全局注册 Vue.component("my-com", myCom); // 整个页面只能有一个Vue实例对象 let vm = new Vue({ el: "#app", //局部注册组件 /* components: { "my-com": myCom, }, */ data: { msg: "hello", }, methods: {}, }); </script> </body> </html>
Vue表单、计算属性computed、vue深浅监听、vue组件的简单使用
于 2022-05-20 00:09:58 首次发布
本文详细介绍了Vue.js的基础知识,包括如何使用v-model进行表单数据绑定,实现即时更新、延迟更新、格式化输入及多选处理。接着讲解了计算属性的使用,通过计算属性实现简单的加法运算。然后讨论了监听器,展示了如何监听数据变化并作出响应。最后,探讨了Vue组件的概念,通过创建和注册组件实现了代码的复用。
摘要由CSDN通过智能技术生成