• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >vue > vuejs2.0子组件改变父组件的数据实例

vuejs2.0子组件改变父组件的数据实例

作者:22337383 字体:[增加 减小] 来源:互联网 时间:2017-05-30

本文主要包含vuejs2.0,vuejs2.0视频教程,vuejs2.0教程,vuejs2.0实战,vuejs2.0下载等相关知识,22337383 希望在学习及工作中可以帮助到您

在vue2.0之后的版本中,不允许子组件直接改变父组件的数据,在1.0的版本中可以这样操作的,但是往往项目需求需要改变父组件的数据,2.0也是可一个,区别是,当我们把父元素的数据给子组件时,需要传一个对象,子组件通过访问对象中的属性操作数据,下面是演示

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <script type="text/javascript" src="vue.js"></script>  
  <script type="text/javascript">
    window.onload = function(){
      var app = new Vue({
      el:'#box',
      data:{
        myData:{
          info:'父组件信息'
        }
      },
      components:{
        'v-com':{
          props:['data'],
          template:'#tpl',
          methods:{
            change(){
              this.data.info = 'change info'
            }
          }
        }
      }
    })
    }
  </script>
</head>
<body>
  <!-- 子组件改变父组件的数据 -->
  <div id="box">
    <div>
      <p>{{myData.info}}</p>
      <v-com :data ="myData"></v-com>
    </div>
  </div>

  <!-- 模板 -->
  <template id="tpl">
    <div>
      <button @click="change">change</button>
      <p>{{data.info}}</p>
    </div>
  </template>

</body>
</html>
</div>

这种是同步改变数据,就是说子组件的数据改变,父组件数据也跟着改变,下面展示非同步的情况

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <script type="text/javascript" src="vue.js"></script>  
  <script type="text/javascript">
    window.onload = function(){
      var app = new Vue({
      el:'#box',
      data:{
        myData:'父组件信息'
      },
      components:{
        'v-com':{
          data() {
            return {
              childData:''
            }
          },
          props:['data'],
          // dom渲染完毕
          mounted(){
            this.childData = this.data
          },
          template:'#tpl',
          methods:{
            change(){
              this.childData = 'change info'
            }
          }
        }
      }
    })
    }
  </script>
</head>
<body>
  <!-- 子组件改变父组件的数据,不同步 -->
  <div id="box">
    <div>
      <p>{{myData}}</p>
      <v-com :data ="myData"></v-com>
    </div>
  </div>

  <!-- 模板 -->
  <template id="tpl">
    <div>
      <button @click="change">change</button>
      <p>{{childData}}</p>
    </div>
  </template>

</body>
</html>
</div>

这里巧妙的通过mounted这个方法进行了中转,实现了想要的效果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

</div>

您可能想查找下面的文章:

  • vuejs2.0子组件改变父组件的数据实例
  • 详解Vuejs2.0之异步跨域请求
  • vuejs2.0运用原生js实现简单的拖拽元素功能示例
  • vuejs2.0实现分页组件使用$emit进行事件监听数据传递的方法
  • vuejs2.0实现一个简单的分页示例
  • VUEJS实战之利用laypage插件实现分页(3)
  • VUEJS实战之修复错误并且美化时间(2)
  • VUEJS实战之构建基础并渲染出列表(1)

相关文章

  • 2017-05-30webpack+vue.js实现组件化详解
  • 2017-05-30vue-cli webpack 开发环境跨域详解
  • 2017-05-30详解Vue.js 2.0 如何使用axios
  • 2017-05-30vue模板语法-插值详解
  • 2017-05-30Javascript vue.js表格分页,ajax异步加载数据
  • 2017-05-30vuejs如何配置less
  • 2017-05-30如何使用Vuex+Vue.js构建单页应用
  • 2017-05-30vuejs在解析时出现闪烁的原因及防止闪烁的方法
  • 2017-05-30详解Vue.js动态绑定class
  • 2017-05-30vue中mint-ui环境搭建详细介绍

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • Vue-Router动态路由
    • Vue.js render方法使用详解
    • 学习vue.js中class与style绑定
    • Vue.js 2.0 和 React、Augular等其他前端框架大比拼
    • 基于vue2.0+vuex的日期选择组件功能实现
    • vue插件tab选项卡使用小结
    • vue.js入门(3)——详解组件通信
    • Vue.js系列之项目结构说明(2)
    • Vue.js事件处理器与表单控件绑定详解
    • Vue.js路由vue-router使用方法详解

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有