import BScroll from ‘better-scroll‘;
import star from ‘../star/star.vue‘;
import split from ‘../split/split.vue‘;
import icon from ‘../icon/icon.vue‘;
import {formatDate} from "../../common/js/date.js";
//{formatDate} 表示写的方法 前面加入了 export, 即 export function formatDate(){}
export default {
props:{ //接口数据,父组件的数据,子组件通过props接收后,子组件才能使用
seller:{
type:Object, //数据类型
default:{}
}
},
data(){
return{ // 必须return
favorite: false
}
},
watch:{ //主要监测数据变化
// watch 监听seller数据,一旦seller数据发生变化,就立即调用seller内部定义的方法
‘seller‘(){
this.$nextTick(()=>{
this._initScroll();
this._initPics();
})
}
},
ready(){ //数据准备好就执行此方法
this._initScroll();
this._initPics();
},
created(){
this.$http.get("/api/goods").then(function(response){
let data = response.body;
if(data.errno === ERROK){
this.goods = data.data;
this.$nextTick(() => {
console.log(‘created‘);
this._initScroll();
this._calculable();
});
}
});
},
/*
created: 在模板渲染成html前调用,通常是初始化某些属性值,然后再渲染成视图
mounted: 在模板渲染成html后调用,通常是初始化页面完成后,再对html的dom节点进行一些必要的操作
通常created使用的次数多,而mounted通常是在一些插件的使用或者组件的使用中进行操作
*/
mounted(){
this.$nextTick(()=>{
this._initScroll();
this._initPics();
})
},
computed:{ //计算属性
favoriteText(){
return this.favorite ? ‘已收藏‘: ‘收藏‘
}
},
methods:{ // 所有的方法都写在这里面
getHeart(event){
if(!event._constructed){ //阻止浏览器的网页点击事件,只执行手机点击事件
return;
}
this.favorite = !this.favorite
},
_initScroll(){ // 组件的私有方法,一般前面加_, 能被外部调用的方法不加_
if(!this.scroll){
this.scroll = new BScroll(this.$refs.sellerWrappper, {
click:true
})
}else{
this.scroll.refresh();
}
}
},
components:{ //引入的组件,都需要在这里注册才能使用
star,
split,
icon
}
}