Vue   学习第四天--第一部分

1.父组件向子组件传值 v-bind:临时变量名=“父组件变量名”

v-bind:value=”fathervalue”

子组件使用 props:[‘value’] 数组进行接收即可,

<body>

<!--需求,这个是实现动画,-->

<div id="app">

<!--

我们可以在引用子组件 时候,通过属性绑定 v-bind 的形式,把需要传递给子组件的数据

以属性绑定的形式传递到子组件的内部,供子组件使用,

//然后子组件怎么使用呢??? 还需要定义一下,

-->

<com1 v-bind:parentmsg="msg"></com1>

</div>

<script>

var vm = new Vue({

el : '#app',

data : {

msg : '父组件给子组件传递123'

},

methods : {

},

components : {

//经过演示,发现自组件中,默认是无法访问到父组件中data的数据,会报错,

//那么父组件向子组件传值呢??

com1 : {

template : '<h1 @click="change">这个是一个子组件--{{parentmsg}}---{{mymsg}}</h1>',

//组件中的所有props 里面的值,都是父组件传递过来的,

props : ['parentmsg'], //把父组件传递过来的属性,先在props 数组中定义一下,这样才能传递成功

//才能使用成功。

//其中,自己有data ,私有数据,但是data 必须是一个函数,并且返回的是对象数据

//这个主要是由于 私有组件的性质决定的。

// data 数据中的数据 一般是通过Ajax 请求回来的数据,当道data 上面

//data 中的数据是可读可写的,props 中的数据只能是可读

data : function() {

return {

mymsg : 'mymesssag11e'

}

},

filters :{},

directives : {},

components : {},

methods : {

change(){

//this.mymsg = '被修改了哦';

this.parentmsg = '修改父组件的值??';

}

}

}

}

});

2.父组件向子组件传递 方法  v-on : 零时函数名 = “父组件函数名”

在这个里面还实现了子组件向父组件传递数值,父组件还能将其保存,,

1.v-on:sonfunc=”fatherfunc”

2.子组件中再触发一下,this.$emit(‘sonfunc’);

2.1也可以子数值传递给父数值  this.$emit(sonfunc,sondata);

我的问题是:子组件的data 封装不正确,子组件中data 是这样封装的

data : function (){   //data 是函数

return {};    //返回对象数据

}

3. 实现一个 评论列表

<!--熟悉使用 最新的 组件命名与使用,子函数,字数据,父函数,父数据的使用,

1.主要是对评论框这个组件实现复用

-->

我的学习盲点: 1.关于json转成数组   array = JSON.stringify(Object)

2. 数组转换成对象,  object = JSON.parse(array)

还有就是关于 localstroage 的存取使用

<!doctype html>

<html lang="en">

<head>

<meta charset="UTF-8">

<meta name="Generator" content="EditPlus®">

<meta name="Author" content="">

<meta name="Keywords" content="">

<meta name="Description" content="">

<title>组件的开发</title>

<script src="../../lib/vue.min.js"> </script>

<link href="../../lib/bootstrap.min.css" rel="stylesheet">

</head>

<body>

<!--需求,这个是实现动画,-->

<div id="app">

<div>

<!--组件,将复用的功能进行抽取成组件,然后复用。这个是重点环节了,组件的相关使用

1. 声明临时 组件变量,开辟空间

2. 开启模板,书写本文组件内容

3. 将组件定义到components 中

-->

<div>

<cmt-box>

</cmt-box>

</div>

<div>

<ul class="list-group">

<li class="list-group-item" v-for="item in list" :key="item.id">

<span class="badge">评论人:{{item.user}}</span>{{item.content}}

</li>

</ul>

</div>

</div>

</div>

<template id="temp1">

<div>

<div class="form-group">

<label>评论人:</label>

<input type="text" class="form-control" v-model="user">

</div>

<div class="form-group">

<label>评论内容:</label>

<textarea class="form-control" v-model="content"></textarea>

</div>

<div class="form-group">

<input type="button" value="发布评论" class="btn btn-primary" @click="postComment">

<!--在这里犯错的原因是,数据的ing一位置错误-->

</div>

</div>

</template>

<script>

var commentBox = {

//再次犯错,是因为数据的封装不正确,

data (){

return {

user : '',

content : ''

}

},

template : '#temp1',

methods : {

postComment(){

//发表评论 子函数函数

//逻辑分析 1. 评论数据存到哪里?? ----》》》 存放到localStorage 中,调用localStorage.setItem('key','value');

//2.先组织出一个最新的评论数据对象,

//3.把第二步的数据对象存到localStorage 中

//3.1 localStorge 中只支持 字符串数据,需要先将对象调用JSON.stringify函数进行转换

//3.2 在保存最先数据之前,要先从localStorge 中拿到之前历史数据,将string数据转换成

//一个 数组对象,然后把最新的评论数据push 到这个数组中,//push 是在前面插入,因此要在后面插入

//3.3 3.2 的bug 是如果之前没有数据怎么办,那么则置空,考虑业务完整性。返回一个'[]' 让JSON.parse 去转换。

// 3.4 把最新的评论列表再次调用JSON.stringify 转换成数组字符串,然后调用localStorage.setItem

var comment = {id : Date.now(),user : this.user,content : this.content};

//获取所有的历史数据,做空处理,并且转换成数组对象 调用 JSON。parse

var list = JSON.parse(localStorage.getItem('cmts') || '[]') ;

//数组对象中加入新的数据

list.push(comment); //放到最前面,用list.unshift(comment);

//将最新的数据存进去、记得将对象转换成数组,

localStorage.setItem('cmts',JSON.stringify(list));

this.user = this.content = '';

}

}

};

var vm = new Vue({

el : '#app',

data : {

list:[

{id : Date.now(),user : '李白',content :'天生我才必有用'},

{id : Date.now(),user : '杜甫',content : '大避天下寒士'},

{id : Date.now(),user : '白居易',content :'犹抱琵琶半遮面'}

]

},

methods : {

},

components : {

'cmt-box' : commentBox,

methods :{

add(){

}

}

}

});

</script>

</body>

</html>

4.

5.

6.

Vue 学习第四天--第一部分 --盲点整理与昨天知识回顾相关推荐

  1. 吴恩达深度学习第四课第一周 卷积神经网络

    文章目录 前言 一.计算机视觉(引言) 二.边缘检测示例(过滤器) 三.更多边缘检测内容(由亮到暗还是由暗到亮?) 四.Padding(Valid.Same.p) 五.卷积步长(s) 六.三维卷积(通 ...

  2. Vue 学习第四天 -2

    4. Vue  操作Dom ,获得Dom节点,  ref 属性, $refs ref 引用组件 ,然后实现相关数据和 方法的引用,差不多就是父组件调用子组件, <body> <!-- ...

  3. Vue.js 学习笔记 四 用一,二,三的知识做个跑马灯

    做个简单的跑马灯效果 页面定义2个按钮,绑定2个方法. <div id="divApp"><input type="button" value ...

  4. Vue学习(四)—— vue中的ajax

    文章目录 第四部分 vue中的ajax 一.axios 1.安装 2.引入 二.vue脚手架配置代理 1.方法一 2.方法二 三.github用户搜索案例 1.接口地址 2.vue 项目中常用的 2 ...

  5. 汇编语言学习——第四章 第一个汇编程序

    1.一个汇编语言程序从写出到最终执行的简要过程: 编写--> 编译,链接 --> 执行 2.编译,链接 使用汇编语言编译程序(MASM.EXE)对源程序文件中的源程序进行编译,产生目标文件 ...

  6. VUE学习(十四)读取json文件

    1.json文件内容 2.使用import导入json <script setup>import config from '../../public/config/config.json' ...

  7. VUE学习和开发中的注意点总结(一),便于回顾(不断完善补充。)

    1.export 和export default 的区别? 在JavaScript ES6中,export与export default均可用于导出常量.函数.文件.模块等,你可以在其它文件或模块中通 ...

  8. 千峰java 笔记整理_JAVA学习笔记系列:菜鸟Vue学习笔记(四)

    菜鸟Vue学习笔记(四) 上周学习了使用Vue来操作表单元素进行数据双向绑定,今天我们来学习下Vue中的组件,Vue中的组件作用就是去封装一些常用的页面标签,将其当做一个整体,以便在其他位置直接使用一 ...

  9. Vue学习(二)动态绑定与事件监听

    v-bind&v-on Day1 文章目录 v-bind&v-on 前言 一.V-bind 1.简单实现 2.Class的绑定 2.1对象绑定 2.2数组绑定 3.style的绑定 3 ...

最新文章

  1. 802.11ac和SD-WAN有什么联系?
  2. 轻松搞定RocketMQ入门
  3. 【接口时序】2、Verilog实现流水灯及与C语言的对比
  4. 【LeetCode笔记】剑指 Offer 45. 把数组排成最小的数(Java、字符串、Lambda)
  5. html列表拖拽排序插件,JS拖拽排序插件Sortable.js用法实例分析
  6. jmx为啥开了额外两个随机端口?
  7. Akka源码分析-Actor创建
  8. webpack4.0版本中的js压缩问题
  9. 2015软件测试视频教程
  10. JAVA虚拟机规范第八版与JAVA虚拟机规范第九版PDF资源分享
  11. tftpd32 工具中的 dhcp tftp 使用说明
  12. 设备管理 android问号,设备管理器里有问号怎么办
  13. OTP一次性动态密码工具实现
  14. 软考中级 真题 2015年上半年 信息系统管理工程师 应用技术
  15. Java如何进行文件上传与下载
  16. avi怎么转换为mp4格式?
  17. 等值连接、自然连接和内连接之间的区别
  18. Android应用安装流程理解
  19. 网页css实现文字竖向排版的几种方法
  20. 苦逼的程序员,苦逼的加班

热门文章

  1. oracle 12c dg新特性,oracle 12c:新特性-网格(Grid)基础架构的增强
  2. html表格分页无插件,wordpress无插件实现单篇文章分页显示
  3. centos apt-get java_CentOS安装jdk的三种方法
  4. BZOJ1117 [POI2009]救火站Gas 贪心
  5. 在美妙的数学王国中畅游
  6. 微信公众号开发 回复事件(测试账号)
  7. bzoj 3512: DZY Loves Math IV【欧拉函数+莫比乌斯函数+杜教筛】
  8. luogu_1134 阶乘问题
  9. 抽象工厂类--一个简单的例子
  10. 图片显示时加水印(不改变原图片)