欢迎访问 生活随笔!

尊龙游戏旗舰厅官网

当前位置: 尊龙游戏旗舰厅官网 > 前端技术 > vue >内容正文

vue

vue 学习第四天-尊龙游戏旗舰厅官网

发布时间:2024/10/8 vue 23 豆豆
尊龙游戏旗舰厅官网 收集整理的这篇文章主要介绍了 vue 学习第四天--第一部分 --盲点整理与昨天知识回顾 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

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

 

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

v-bind:value=”fathervalue”

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

<body>

    

    <div id="app">

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

div>

<script>

var vm = new vue({

el : '#app',

data : {

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

},

methods : {

},

components : {

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

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

com1 : {

template : '

',

//组件中的所有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.关于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>

<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">

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 学习第四天--第一部分 --盲点整理与昨天知识回顾的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得尊龙游戏旗舰厅官网网站内容还不错,欢迎将尊龙游戏旗舰厅官网推荐给好友。

  • 上一篇:
  • 下一篇:
网站地图