请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

Dell老师看这个问题

单向数据流

老师在我的子组件中为什么在标签上的 myData+=1 可以在页面上渲染 ,然而,定义handleClick(myData) 却没办法实现了

正在回答 回答被采纳积分+3

1回答

提问者 Dell铁粉 2021-03-19 15:59:13

代码如下

<!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>单向数据流</title>
    <script src="https://unpkg.com/vue@next"></script>

</head>
<body>
    <div id="root"></div>
      <!-- 
        知识点
            1.属性传的时候(变量太长)用content-abc这种命名
            2.接的时候用contentAbc驼峰式来命名,
            3.反过来就不行 不能以驼峰式来传值!!

     -->
</body>
<script>
        const app = Vue.createApp({
            data(){
                return{
                    params:{
                        count : 10,
                        eve:"click"
                    }
                }
            },
            methods:{
                // handleClick(){
                //     this.count += 1
                // }
            },
            // template:
            // `
            //     <counter :count="count" :eve="eve" />
            // `,
            template:
            `
                <counter v-bind="params" />
            `,

        })

        app.component('counter',{

            // props:{
            //     count:{
            //         type:Number,
            //         validator:(value)=>{
            //             console.log( typeof value,this)
            //             // console.log( props )
            //             return value <100
            //         },
            //         default:()=>{
            //             return 999
            //         }
            //     },
            //     eve : {
            //         eve:String
            //     }
            // },

            // --------------
            props:['eve','count'],
                data(){
                    return{
                        
                        myData:this.count
                    }
                },
               
            // --------------
            methods:{
                handleClick(myData,event){
                    // this.emit(")
                    // alert(myData)
                    myData = myData + 1;
                    console.log(myData)
                }
            },
            template:
                 `
                  <div @[eve]="myData+=1">{{myData}}</div>
                `,
                // <div @[eve]=" handleClick(myData)">{{myData}}</div>
           
        })
        const vm = app.mount("#root")
</script>
</html>


0 回复 有任何疑惑可以回复我~
  • Dell #1
    ()=> handleClick(myData) 这么写呢
    回复 有任何疑惑可以回复我~ 2021-03-19 22:13:42
  • 提问者 Dell铁粉 回复 Dell #2
    老师不行 会报错
    回复 有任何疑惑可以回复我~ 2021-03-19 22:25:06
  • Dell 回复 提问者 Dell铁粉 #3
    报错发我看一下
    回复 有任何疑惑可以回复我~ 2021-03-20 20:35:03
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信