Vue 第九天学习

Vue  第九天学习

1.实现发表评论功能

1.把文本框做双向数据绑定

v-model =”msg”

2.为发表按钮绑定一个事件

@click=”post_Comment”

3.点击发表评论时,做相关校验,【为空,非法,】,并且进行提示

post_Comment(){

if(this.msg.trim().length == 0){

 Toast(‘评论数据不能为空’);

}

//真实情况是给服务器发数据

this.$http.post(‘wwww.bnaidu.com’+this.$route.params.id).then(function (result){

if(result.body.status == 0){

//封装到数据中

var cmt = {

content : this.msg;

}

this.msg.trim();

this.comment.unshift(msg);

}

})

}

4.通过vue-resouce 将数据发送给服务器,

5.发布数据ok以后,列表刷新,得到最新的评论【????】。本质是查看最新的评论。

那么就是刷新列表。

2.图片分享功能实现。

1.改造路由连接 a  --->>>>    router-link, 然后把规则写好。

<router-link to="/home/photolist">

         <span class="mui-icon mui-icon-email"><span class="mui-badge">5</span></span>

         <div class="mui-media-body">图片分享</div>

</router-link>

2.新建组件,

PhotoList.vue

3. 到路由匹配规则中进行 路由匹配

import PhotoList from './components/photos/PhotoList.vue'

{path :'/home/photolist',component :PhotoList},

4.内容实现。到MUI 中复制内容

<div id="slider" class="mui-slider">

                <div id="sliderSegmentedControl" class="mui-scroll-wrapper mui-slider-indicator mui-segmented-control mui-segmented-control-inverted">

                    <div class="mui-scroll">

                        <a class="mui-control-item mui-active" href="#item1mobile" data-wid="tab-top-subpage-1.html">

                            推荐

                        </a>

                        <a class="mui-control-item" href="#item2mobile" data-wid="tab-top-subpage-2.html">

                            热点

                        </a>

                        <a class="mui-control-item" href="#item3mobile" data-wid="tab-top-subpage-3.html">

                            北京

                        </a>

                        <a class="mui-control-item" href="#item4mobile" data-wid="tab-top-subpage-4.html">

                            社会

                        </a>

                        <a class="mui-control-item" href="#item5mobile" data-wid="tab-top-subpage-5.html">

                            娱乐

                        </a>

<a class="mui-control-item" href="#item5mobile" data-wid="tab-top-subpage-5.html">

                            娱乐

                        </a>

                    </div>

                </div>

 

        </div>

5.把它的mui-fullscreen去掉,

6.滑动条无法正常滑动,需要JS 初始化。

6.1 导入MUI.js

6.2 然后使用方法初始化

//1.倒入MUI的js 文件

import mui from '../../lib/mui/js/mui.min.js'

//2.初始化滑动控件

mui('.mui-scroll-wrapper').scroll({

    deceleration: 0.0005 //flick 减速系数,系数越大,滚动速度越慢,滚动距离越小,默认值0.0006

});

【移除严格模式---视频404.项目-图片列表顶部导航条制作2-解决初始化问题

1. 装包

2. ,babelrc  中配置(等方式)

bug,第一次进来以后,滑动条无效,需要刷新才起作用

原因分析,初始化的不对,

解决方法,放到生命周期的钩子函数中,

created(){

//第二个生命周期函数,代表数据和方法以及创建好了,

},

mounted (){ //代表组件已经创建好了,这个是最后的,说明DOM结构已经渲染好了,

//当组件DOM结构已经渲染好,并放到页面后,执行这个钩子函数,

// 如果要操作元素了,最好在mounted函数中,因为这个时候所有的dom元素都创建好了

//2.初始化滑动控件

mui('.mui-scroll-wrapper').scroll({

deceleration: 0.0005 //flick 减速系数,系数越大,滚动速度越慢,滚动距离越小,默认值0.0006

});

},

3.悬案图片分享中的数据,

3.1定义方法去拿数据

getAllCategroy{

}

3.2 data 中定义数据

cats :[],

3.2 然后想created 中挂载方法和数据。

created (){

}

滑动条高亮的选择。

<a :class="['mui-control-item',item.id == 0 ? 'mui-active' :'']" v-for="item in cates" :key="item.id">

                            {{item.title}}

                        </a>

4.实现图片列表区域,

1.导入组件,效果参考mint-ui的懒加载

main.js  中导入  import {Lazyload}  from ‘mint-ui’;

Vue.use(Lazyload) ;

2.页面实现

<!--图片列表区域-->

<ul>

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

<img v-lazy="item">

</li>

</ul>

3.渲染图片列表数据.根据导航ID 去获取相关的 内容。因此定义相关方法,然后在不同的地方调用,传递不同的值即可

getPhotoListByCateId(cateID){

//特别注意,这里要根据图片列表的id 分别获取相关数据

this.$http.get('xxx/'+cateID).then(result =>{

if(result.body.result.status == 0){

this.list = result.body.message;

}

 

}); //怎么获取实时的id???..n哪里调用它??

//答:调用的时候就可以传递id 了

//,页面刚进入,默认初始化传递0 ,

// //刚进入,价值默认页面

//this.getPhotoListByCateId(0);

// 然后点击各自导航的时候传递值,

/*

<a :class="['mui-control-item',item.id == 0 ? 'mui-active' :'']" v-for="item in cates" :key="item.id"

@click="getPhotoListByCateId(item.id)">

                            {{item.title}}

                        </a>

*/ 

},

5.【这里面跳过两个视频】

6.实现商品购买功能

1.前提难点分析:1.布局不会,2.我猜是三个div  分为三块。

2.改造路由连接

3.组件实现

4. 路由匹配规则的实现,

【尝试学习写 CSS  样式】

<template>

<div class="goods-list">

<div class="good-item">

<img src="https://shopstatic.vivo.com.cn/vivoshop/commodity/49/4849_1530622462696hd_530x530.png">

<h1 class="title">VIVO手机</h1>

<div class="info">

<p class="price">

<span class="now">$199</span>

<span class="old">$299</span>

</p>

<p class="sell">

<span>热卖中</span>

<span>剩余60件</span>

</p>

</div>

</div>

<div class="good-item">

<img src="https://shopstatic.vivo.com.cn/vivoshop/commodity/49/4849_1530622462696hd_530x530.png">

<h1 class="title">VIVO手机</h1>

<div class="info">

<p class="price">

<span class="now">$199</span>

<span class="old">$299</span>

</p>

<p class="sell">

<span>热卖中</span>

<span>剩余60件</span>

</p>

</div>

</div>

<div class="good-item">

<img src="https://shopstatic.vivo.com.cn/vivoshop/commodity/49/4849_1530622462696hd_530x530.png">

<h1 class="title">VIVO手机</h1>

<div class="info">

<p class="price">

<span class="now">$199</span>

<span class="old">$299</span>

</p>

<p class="sell">

<span>热卖中</span>

<span>剩余60件</span>

</p>

</div>

</div>

</div>

 

</template>

<script>

export default {

}

</script>

<style lang="scss" scoped>

.goods-list{

display: flex;

flex-wrap: wrap;

padding: 7px;

justify-content: space-between;

}

.good-item{

width: 49%;

border:1px solid #ccc;

box-shadow: 0 0 8 #ccc;

margin:3px 0px;

img{

width: 100%;

height: 150px;

}

.info{

padding: 5px;

}

.title{

font-size: 14px;

}

.price{

display: flex;

justify-content: space-between;

.now{

color: red;

}

}

.sell{

display: flex;

justify-content: space-between;

}

}

</style>

7.

8.

9.

猜你喜欢

转载自blog.csdn.net/qq_27300101/article/details/81028945