鱼C论坛

 找回密码
 立即注册
查看: 2572|回复: 0

为何子组件中的this报错,用vue脚手架写的

[复制链接]
发表于 2022-7-5 16:28:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. //app组件
  2. //
  3. //
  4. <template>
  5. <div id="app">
  6.   <MyHeader :addtodo='addtodo'></MyHeader>
  7. <MyList :todolist="todolist"></MyList>
  8. <MyFooter></MyFooter>
  9. </div>
  10. </template>

  11. <script>
  12. import  MyFooter  from "./components/MyFooter";
  13. // import  MyItem  from "./components/MyItem";
  14. import  MyList  from "./components/MyList.vue";
  15. import  MyHeader  from "./components/MyHeader.vue";
  16. export default {
  17.   name:'App',
  18.   components:{
  19.     MyFooter,
  20.     MyHeader,
  21.     MyList,
  22.   },
  23.   // methods:{
  24.   //   addtodo(datas){

  25.   //   }
  26.   // },
  27.   data(){
  28.       return{
  29.         todolist:[
  30.                 {id:'001',title:'吃饭',done:false},//这里的false或者ture不能写成字符串形式。否则接受的数据就是一个字符串
  31.                 {id:'002',title:'打代码',done:true},
  32.                 {id:'003',title:'练车',done:false},
  33.             ]
  34.       }
  35.   },
  36.   methods:{
  37.     addtodo(todoobj){
  38.       console.log('我是app组件,我收到了数据',todoobj);
  39.       this.todolist.unshift(todoobj);
  40.     }
  41.   }
  42. }

  43. </script>

  44. <style scoped>
  45. #app{
  46.   width:300px;
  47.   height:200px;
  48.   background-color:bisque;
  49.   margin: 0 auto;
  50.   padding-top:10px;
  51. }
  52. </style>
  53. //
  54. //
  55. //子组件
  56. ////
  57. //
  58. //
  59. <template>
  60. <div id="myfooter">
  61. <input class="footers" type="text"  placeholder="请输入搜索内容" @keyup.enter="add">

  62. </div>

  63. </template>

  64. <script>
  65. // import { nanoid } from "nanoid";
  66. export default  {
  67.     props:['addtodo'],
  68.     data(){
  69.       return {
  70.             
  71.          add(e){console.log(this);
  72.             // console.log(e.target.value);
  73.             // console.log(e.target);//e.target指的是绑定事件的元素,即文本框。
  74.             e.target.value='';
  75.             const todoobj={id:1,title:e.target.value,done:false}
  76.          this.addtodo(todoobj);//////////////////////问题所在
  77.             
  78.          }
  79.       }
  80.     },
  81.    
  82. }
  83. </script>

  84. <style scoped>

  85. .footers{
  86.     width:270px;
  87.     height:20px;
  88.     margin:0 auto;
  89.     /* input是行内元素,要想margin:0 auto实现成功,则应该设置其为块级元素*/
  90.     /* 记住设置为行内块元素是无效 */
  91.     display:block;
  92.     /* margin-left:20px; */

  93. }
  94. </style>
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-5 01:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表