mounted钩子问题
recommend.vue
- <script type="text/ecmascript-6">
- import Slider from 'base/slider/slider'
- import {getRecommend, getDiscList} from 'api/recommend'
- import {ERR_OK} from 'api/config'
- export default {
- name: 'Recommend',
- data() {
- return {
- recommends:[]
- }
- },
- components: {
- Slider
- },
- created() {
- this._getRecommend()
- },
- methods: {
- _getRecommend(){
- getRecommend().then((res)=> {
- if(res.code === ERR_OK){
- console.log(res.data.slider);
- this.recommends = res.data.slider
- }
- })
- }
- }
- }
- </script>
在recommend.vue中created执行this._getRecommend(),这是个异步操作,可能需要几秒, 但是slide.vue中的mounted钩子已经渲染执行,
但slide.vue中插槽无内容,出错
- <template>
- <div class="slider" ref="slider">
- <div class="slider-group" ref="sliderGroup">
- <slot>
- </slot>
- </div>
- <div class="dots">
- <span class="dot"></span>
- </div>
- </div>
- </template>
- <script type="text/ecmascript-6">
- import {addClass} from 'common/js/dom'
- import Bsrcoll from 'better-scroll'
- export default {
- name: 'Slider',
- props: {
- loop: {
- type: Boolean,
- default: true
- },
- autoplay: {
- type: Boolean,
- default: true
- },
- interval: {
- type: Number,
- default: 4000
- }
- },
- mounted() {
- setTimeout( () => {
- this._setSliderWidth()
- this._initSlider()
- },20)//浏览器涮新时间
- },
- methods: {
- _setSliderWidth(){
- //获取sliderGroup子元素dom集合
- this.children = this.$refs.sliderGroup.children
- let width = 0
- let slideWidth = this.$refs.slider.clientWidth//slider窗口宽度
- for (let i =0; i < this.children.length; i++) {
- let child = this.children[i]
- addClass(child, 'slider-item')
- child.style.width = slideWidth + 'px'
- width += slideWidth
- }
- if(this.loop){
- width += 2*slideWidth
- }
- this.$refs.sliderGroup.style.width = width + 'px'
- },
- _initSlider(){
- }
- }
- }
- </script>
所以在父级添加v-if="recommends.length",来判断recommends是否得到
- <div class="slider-wrapper" v-if="recommends.length">
- <slider>
- <div v-for="item in recommends" :key="item.id ">
- <a :href="item.linkUrl">
- <img :src="item.picUrl" alt="" />
- </a>
- </div>
- </slider>
- </div>
mounted钩子问题的更多相关文章
- 从父子组件的mounted钩子的同步执行与页面的异步渲染看nextTick的用法
最近复习vue的时候遇到了一个很奇怪的问题,我们直接从实例中看: <div id="app"> <child ref="child">& ...
- vue 使用同一组件,切换时不触发created、mounted钩子
两个页面参数不同使用同一组件,默认情况下当这两个页面切换时并不会触发created或者mounted钩子. 方法一:通过watch $route的变化来做处理 watch: { $route() { ...
- vue中子组件的created、mounted钩子中获取不到props中的值问题
父子组件通信 这个官网很清楚,也很简单,父组件中使用v-bind绑定传送,子组件使用props接收即可 例如: 父组件中: <template> <div> <head- ...
- Vue.js 系列教程 3:Vue-cli,生命周期钩子
原文:intro-to-vue-3-vue-cli-lifecycle-hooks 译者:nzbin 这是 JavaScript 框架 Vue.js 五篇教程的第三部分.在这一部分,我们将学习 Vue ...
- Vue 实例中的生命周期钩子
Vue 框架的入口就是 Vue 实例,其实就是框架中的 view model ,它包含页面中的业务处理逻辑.数据模型等,它的生命周期中有多个事件钩子,让我们在控制整个Vue实例的过程时更容易形成好的逻 ...
- Vue的钩子函数[路由导航守卫、keep-alive、生命周期钩子]
前言 说到Vue的钩子函数,可能很多人只停留在一些很简单常用的钩子(created,mounted),而且对于里面的区别,什么时候该用什么钩子,并没有仔细的去研究过,且Vue的生命周期在面试中也算是比 ...
- vue 项目实战 (生命周期钩子)
开篇先来一张图 下图是官方展示的生命周期图 Vue实例的生命周期钩子函数(8个) 1. beforeCreate 刚 new了一个组件,无法访问到数据和真实的do ...
- vue学习之生命周期和钩子函数
参考文章:Vue2.0 探索之路——生命周期和钩子函数的一些理解 抛出问题: 我们有时候会在几个钩子函数里做一些事情,那么什么时候做,该在哪个函数里做? 生命周期简介 结合代码看el 和 data以及 ...
- vue 生命周期钩子的理解 watch computed
一 理解vue的生命周期,首先需要注意几个关键字 1. el :选择器 2. $el:对应选择器的template模板(html代码) 3. render:也是vue实例中的一项,其参数更接近vue ...
随机推荐
- Ubuntu 16.04切换/home中文目录为英文目录
其实这个方法是具有技巧性的,不建议使用. 1.先转换成英文 sudo gedit /etc/default/locale 将内容改为: LANG=”en_US.UTF-8″ LANGUAGE=”en_ ...
- Angularjs中添加ckEditor插件
使用方法看注释.主要解决帮上ngModel的问题 angular.module('newApp') .directive('ckeEditor', function() { return { /* F ...
- Java序列化之readObjectNoData、readResolve方法
Java序列化之readObjectNoData.readResolve方法 学习了:http://vyloy.iteye.com/blog/1240663 readResolve方法会在Object ...
- STL 笔记(五) 算法 algorithm
在 STL 中,算法是一系列的函数模版.STL 提供了大概 70 个算法,由头文件 <algorithm>.<numeric>.<functional>组成. 头文 ...
- Spring技术内幕:Spring AOP的实现原理(五)
7.Advice通知的实现 AopProxy代理对象生成时,其拦截器也一并生成.以下我们来分析下Aop是怎样对目标对象进行增强的.在为AopProxy配置拦截器的实现中,有一个取得拦截器配置过程,这个 ...
- FloatingActionMenu 向上弹出菜单
本人在github上找到了一个FloatingActionsMenu,精简了其效果(原效果有上下左右四个方向)仅仅保留向上的效果,并做了一定的优化. github上的源代码:地址 ,精简后的源代码地址 ...
- oop_day06_抽象类、接口_20150814
oop_day06_抽象类.接口_20150814 1.static final常量: 1)必须声明同一时候初始化.不能改动,类名点来訪问 2)常量名建议全部字母都大写 3)编译器编译时会直接替换为详 ...
- LeetCode 443. String Compression (压缩字符串)
题目标签:String 这一题需要3个pointers: anchor:标记下一个需要存入的char read:找到下一个不同的char write:标记需要存入的位置 让 read指针 去找到下一个 ...
- 20170623_oracle基础知识_常见问题
1 如何配置网络服务?两种连接 Oracle 工具? 1) 打开Net Manager 2) 选择服务命名,点击“+ ”号 3 ) 网络服务名: remote协议:tcp/ip 主机名:ip地址 端 ...
- C# winform通过按钮上移下移 解决了datasource绑定问题
事件代码: private void btn_frmDicType_MoveUp_Click(object sender, EventArgs e) { int lstLength = this.ls ...