let obj = {x:100} let obj2 = {y:200} Object.defineProperty(obj2,'x',{ get(){ return obj.x }, set(value){ obj.x = value } }) vu_vue数据代理的意义">
当前位置:   article > 正文

vue中的数据代理,何为数据代理?_vue数据代理的意义

vue数据代理的意义

数据代理:通过一个对象代理对另一个对象中属性的操作(读/写)

  1. <script type="text/javascript" >
  2. let obj = {x:100}
  3. let obj2 = {y:200}
  4. Object.defineProperty(obj2,'x',{
  5. get(){
  6. return obj.x
  7. },
  8. set(value){
  9. obj.x = value
  10. }
  11. })
  12. </script>

vue中的数据代理


1.Vue中的数据代理:

        通过vm对象来代理data对象中属性的操作(读/写)

2.Vue中数据代理的好处:

        更加方便的操作data中的数据

3.基本原理:

        通过Object.defineProperty()把data对象中所有属性添加到vm上。

        为每一个添加到vm上的属性,都指定一个getter/setter。

        

  1. <!-- 准备好一个容器-->
  2. <div id="root">
  3. <h2>名称:{{name}}</h2>
  4. <h2>地址:{{address}}</h2>
  5. </div>
  6. </body>
  7. <script type="text/javascript">
  8. Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。
  9. const vm = new Vue({
  10. el:'#root',
  11. data:{
  12. name:'自然萌',
  13. address:'北京'
  14. }
  15. })
  16. </script>

在getter/setter内部去操作(读/写)data中对应的属性。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/548565
推荐阅读
相关标签
  

闽ICP备14008679号