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

淘客做的领券网站php wordpress xmlrpc

淘客做的领券网站,php wordpress xmlrpc,哪个培训机构ui设计比较好,专业pc网站建设文章目录 计算属性computer定义计算属性在模板中使用计算属性计算属性的使用场景 监听器watch基本语法深度监听立即执行监听数组异步操作数据校验副作用处理清理监听器 watch 与 computed 的区别 计算属性computer 在 Vue 中,计算属性(computed&#xf…

文章目录

  • 计算属性computer
    • 定义计算属性
    • 在模板中使用计算属性
    • 计算属性的使用场景
  • 监听器watch
    • 基本语法
    • 深度监听
    • 立即执行
    • 监听数组
    • 异步操作
    • 数据校验
    • 副作用处理
    • 清理监听器
  • watch 与 computed 的区别

计算属性computer

在 Vue 中,计算属性(computed)是一种非常强大的功能,它允许你基于组件的响应式数据动态计算新的值。计算属性是基于它们的依赖进行缓存的,只有当依赖发生变化时,计算属性才会重新计算。这使得计算属性比普通的方法更加高效,尤其是在处理复杂逻辑或性能敏感的场景时。

Vue 的响应式系统会追踪计算属性的依赖。当计算属性的依赖发生变化时,计算属性会自动重新计算。依赖追踪是基于 Vue 的响应式系统实现的,它能够高效地检测依赖的变化

new Vue({el: '#app',data: {a: 1,b: 2},computed: {c() {return this.a + this.b;}}
});

在这个例子中,c 是一个计算属性,它依赖于 a 和 b。当 a 或 b 的值发生变化时,c 会自动重新计算。

定义计算属性

计算属性通过 computed 选项定义,它是一个对象,对象的每个属性对应一个计算逻辑。计算属性可以是一个函数,也可以是一个包含 get 和 set 方法的对象

new Vue({el: '#app',data: {firstName: 'John',lastName: 'Doe'},computed: {fullName() {return `${this.firstName} ${this.lastName}`;}}
});

fullName 是一个计算属性,它基于 firstName 和 lastName 的值动态计算出完整的姓名。当 firstName 或 lastName 发生变化时,fullName 会自动重新计算

在模板中使用计算属性

<div id="app"><p>First Name: <input v-model="firstName"></p><p>Last Name: <input v-model="lastName"></p><p>Full Name: {{ fullName }}</p>
</div>

计算属性的使用场景

  1. 数据格式化
new Vue({el: '#app',data: {date: new Date()},computed: {formattedDate() {return this.date.toISOString().split('T')[0];}}
});

formattedDate 是一个计算属性,它将 date 格式化为 YYYY-MM-DD 的格式。

  1. 复杂逻辑计算
new Vue({el: '#app',data: {items: [{ name: 'Item 1', price: 10, quantity: 2 },{ name: 'Item 2', price: 20, quantity: 3 }]},computed: {totalPrice() {return this.items.reduce((total, item) => total + item.price * item.quantity, 0);}}
});

totalPrice 是一个计算属性,它基于 items 数组计算购物车的总价。

  1. 条件渲染
new Vue({el: '#app',data: {user: {role: 'admin'}},computed: {isAdmin() {return this.user.role === 'admin';}}
});

isAdmin 是一个计算属性,它基于 user.role 的值动态计算用户是否为管理员

监听器watch

在 Vue 中,watch 是一个非常强大的功能,用于监听组件数据的变化,并在数据发生变化时执行特定的逻辑。与计算属性(computed)相比,watch 提供了更灵活的响应机制,可以执行更复杂的操作,包括异步操作和副作用。

watch 可以监听组件中的数据属性或计算属性,并在它们发生变化时执行回调函数。

基本语法

  • 数据属性
new Vue({el: '#app',data: {message: 'Hello, Vue!',b: { c: 2, d: 3 },},watch: {message(newVal, oldVal) {console.log(`Message changed from ${oldVal} to ${newVal}`);},"b.c": function(val, oldVal) {this.b.d += 1;console.log("new: %s, old: %s", val, oldVal);},}
});

watch 监听了 message 属性。当 message 的值发生变化时,会调用回调函数,newVal 是新值,oldVal 是旧值。

  • 计算属性
new Vue({el: '#app',data: {firstName: 'John',lastName: 'Doe'},computed: {fullName() {return `${this.firstName} ${this.lastName}`;}},watch: {fullName(newVal, oldVal) {console.log(`Full Name changed from ${oldVal} to ${newVal}`);}}
});

watch 监听了计算属性 fullName。当 firstNamelastName 的值发生变化时,fullName 会重新计算,watch 会捕获到这个变化并执行回调函数。

深度监听

默认情况下,watch 是浅监听,只监听对象的第一层属性变化。如果需要监听对象的深层属性变化,可以使用 deep 选项。

new Vue({el: '#app',data: {user: {name: 'John',age: 30}},watch: {user: {handler(newVal, oldVal) {console.log(`User changed from ${JSON.stringify(oldVal)} to ${JSON.stringify(newVal)}`);},deep: true}}
});

watch 使用了 deep 选项来深度监听 user 对象。当 user 对象的任何属性(如 name 或 age)发生变化时,都会触发回调函数.

立即执行

默认情况下,watch 的回调函数只有在监听的数据发生变化时才会执行。如果需要在组件初始化时立即执行回调函数,可以使用 immediate 选项.

new Vue({el: '#app',data: {message: 'Hello, Vue!'},watch: {message: {handler(newVal, oldVal) {console.log(`Message changed from ${oldVal} to ${newVal}`);},immediate: true}}
});

watch 使用了 immediate 选项。组件初始化时,message 的值会被传递给回调函数,即使它没有发生变化。

监听数组

watch 也可以监听数组的变化,但需要注意数组的响应式操作。

new Vue({el: '#app',data: {items: [1, 2, 3]},watch: {items: {handler(newVal, oldVal) {console.log(`Items changed from ${oldVal} to ${newVal}`);},deep: true}}
});

watch 监听了 items 数组。当数组的元素发生变化时,会触发回调函数。需要注意的是,直接通过索引修改数组元素(如 this.items[0] = 4)不会触发响应式更新,应该使用 Vue 提供的数组方法(如 push, splice 等)来确保响应性。

watch 的应用场景

异步操作

new Vue({el: '#app',data: {userId: 1},watch: {userId(newVal, oldVal) {this.fetchUserData(newVal);}},methods: {fetchUserData(userId) {fetch(`https://api.example.com/users/${userId}`).then(response => response.json()).then(data => {console.log(data);});}}
});

当 userId 的值发生变化时,会调用 fetchUserData 方法从服务器获取用户数据。

数据校验

new Vue({el: '#app',data: {email: ''},watch: {email(newVal) {if (!this.validateEmail(newVal)) {alert('Invalid email address');}}},methods: {validateEmail(email) {const re = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;return re.test(email);}}
});

副作用处理

watch 可以用于处理副作用,例如在数据变化时更新 DOM 或调用第三方库。

new Vue({el: '#app',data: {count: 0},watch: {count(newVal) {document.title = `Count is ${newVal}`;}}
});

当 count 的值发生变化时,会更新浏览器的标题。

清理监听器

在组件销毁时,清理不必要的监听器,避免内存泄漏。

new Vue({el: '#app',data: {message: 'Hello, Vue!'},watch: {message: {handler(newVal, oldVal) {console.log(`Message changed from ${oldVal} to ${newVal}`);},immediate: true}},beforeDestroy() {this.$watchers.message.teardown();}
});

在这个例子中,使用 beforeDestroy 生命周期钩子清理了 message 的监听器。

watch 与 computed 的区别

  1. computed:基于依赖进行缓存,只有当依赖发生变化时才会重新计算。计算属性是同步的,适合用于简单的数据计算。
  2. watch:提供更灵活的响应机制,可以执行异步操作和副作用。watch 的回调函数在数据变化时立即执行,适合用于复杂的逻辑处理。
  3. 能使用计算属性 computed 实现的的,则尽量使用 computed 属性来实现。
http://www.dtcms.com/wzjs/582359.html

相关文章:

  • 网站推广运营公司网站建设朱宁
  • 网站建设百科网页版微信二维码不出来
  • 天津小型网站建设外链购买
  • 网站优化包括对什么优化网站建设一般步骤是什么
  • 哈尔滨快速建站案例新乡市建设工程信息网
  • 网站建设合作流程科技设计网站
  • 做自己的程序设计在线测评网站网站常用配色
  • 模板网站建设报价wordpress 收集表单
  • 微官网和移动网站区别轻极企业wordpress主题
  • php网站开发app接口wordpress个人中心
  • 内网建设网站需要什么条件网站怎样做微信公众号
  • 我想做个网站成都网站设计制作公司
  • 自助式网站建设 济南甘肃崇信县门户网站
  • 手机网站生成工具百度怎么建立网站
  • 区块链网站开发价格重庆智能网站建设哪里好
  • 做网站如何赚流量钱佛山网站建设制作
  • 做网站需要学哪些软件门户网站制作建设
  • 集团网站制作公司电脑上怎么做网页
  • asp网站例子金融网站开发的意义 论文
  • 常州知名网站建设公司wordpress微信分享图片不显示
  • 怎么建个自己的网站发广告
  • 石家庄园林绿化建设招标网站互联网保险案例
  • 网站开发课程设计总结jsp网站开发环境搭建
  • 做公司企业网站标准尺寸什么样的公司愿意做网站
  • 镇江市机关效能与作风建设网站做网站 seo
  • 建站公司 网站qq电脑版官方入口
  • 做网站做本地服务器做网站意义
  • 安徽省建设工程信息网查询平台网站排名优化师
  • 怎么在社保网站上做员工减少网站后期维护收费
  • 上海网站设计开微信分销平台是什么意思