javascript - vue组件传值props的问题

查看:101
本文介绍了javascript - vue组件传值props的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Examples</title>
<meta name="description" content="">
<meta name="keywords" content="">
<link href="./css/weui.css" rel="stylesheet">
<script type="text/javascript" src="./js/vue.js"></script>

</head>
<body>
<template id="parentVal">
  <div>
    <div>{{hyname}}</div>
    <child :zj-name="hyname"></child>
  </div>
</template>
<template id="childVal">
  <div>{{zj-name}}</div>
  <div></div>
  <input></input>
</template>
<div id="parentChild">
  <span>{{uiname}}</span>
  <parent v-bind:name="uiname"></parent>
</div>
<script type="text/javascript">
  var childVal = Vue.extend({
    template:'#childVal'
  });
  Vue.component(
    "parent",

    {
      data:function(){
        return {
          hyname:"120"
        }
      },
      
      template:'#parentVal',
      components:{
        props:['zjName'],
        'child':childVal,
        data:function(){
          return{
            zjName:"io"
          }
        }
      },
      ready:function(){
        console.log(this)
      }
    }
  )
  new Vue({
    el:'#parentChild',
    data:{
      uiname:'hj'
    }
    
  })
</script>

</body>
</html>

我这样运行结果是子组件<div>{{hyname}}</div>为NAN,控制套提示[Vue warn]: Attribute ":zj-name" is ignored on component <child> because the component is a fragment instance: http://vuejs.org/guide/compon...,,难道是我props用的不对?代码可能有点乱,抱歉。谢谢各位帮忙说下是不是错的很离谱。

解决方案

写法有问题,把

data:function(){
            return{
                zjName:"io",
            }
        },
        props:['zjName']

放到上面
变成

var childVal = Vue.extend({
        template:'#childVal',
        data:function(){
            return{
                zjName:"io",
            }
        },
        props:['zjName']
    });

还有就是你已经在data里定义了zjName,应该换个名称

这篇关于javascript - vue组件传值props的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆