vue 左侧菜单展开隐藏重新渲染

左侧菜单隐藏的时候加载echarts图表
图片说明

点击展开左侧菜单时,echarts图表没有重新渲染
,窗体布局变得很难看,如图
图片说明

一直没找到解决办法,求高手指点

2个回答

handleChange () {
this.$emit('on-change', !this.collapsed)
setTimeout(function(){
var evt = window.document.createEvent("UIEvents");
evt.initUIEvent("resize", true, false, window, 0);
window.dispatchEvent(evt);
},200);
}

加个监控就行了( window.onresize):

let home1 = echarts.init(document.getElementById('home1'));

home1.setOption({
...
});

window.onresize = function () {
            home1.resize();
}
qq_40021323
妖王令剑 回复weixin_43314970: 你在点击隐藏显示的时候 重新创建一下echart , 把创建echart的代码封装成方法
大约一年之前 回复
weixin_43314970
weixin_43314970 这个方法试过,只能监测到窗体的变化然后重新渲染,左侧菜单点展开隐藏没有重新渲染
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
vue 左侧菜单出现重复菜单问题怎么解决? 有遇到过这样的问题吗?

问题一: 1、左侧菜单是通过后台配置取过来的、 2、登录进来以后 菜单显示重复 ,一刷新就正常了? 问题二: 1、点击折叠展开 点击一个所有的都折叠展开 ![图片说明](https://img-ask.csdn.net/upload/201910/29/1572335845_655361.png)

vue 菜单 渲染时有时候会有2个菜单都被渲染了

代码用的是:class动态渲染的,一开始加载时没问题的,但是点击浏览器返回时, 有2个菜单都呈现选中状态,打印的状态是对的 ![图片说明](https://img-ask.csdn.net/upload/201906/28/1561708827_740535.png) ``` <template v-for="item in currentNavItems"> <el-menu-item :index="item.index" :key="item.index" @click="changeMenu(item.index)" :class="[item.index==isclicked?'is-active':'']" > <i :class="item.icon" style="color:#fff"></i> <span slot="title">{{ item.title }}-{{ item.index==isclicked }}</span> </el-menu-item> </template> ```

【新手】bootstrap的多级菜单 经过vue数据渲染后 打不开二级菜单 自己写了方法强制打开后 后面的箭头也不会旋转了

原代码: <ul class="nav nav-drawer"> <li class="nav-item nav-item-has-subnav"> <a href="javascript:void(0)"><i class="mdi mdi-menu"></i> 多级菜单</a> <ul class="nav nav-subnav"> <li> <a href="#!">一级菜单</a> </li> <li class="nav-item nav-item-has-subnav"> <a href="#!">一级菜单</a> <ul class="nav nav-subnav"> <li> <a href="#!">二级菜单</a> </li> <li class="nav-item nav-item-has-subnav"> <a href="#!">二级菜单</a> <ul class="nav nav-subnav"> <li> <a href="#!">三级菜单</a> </li> <li> <a href="#!">三级菜单</a> </li> </ul> </li> </ul> </li> <li> <a href="#!">一级菜单</a> </li> </ul> </li>![图片说明](https://img-ask.csdn.net/upload/202004/07/1586268403_228109.jpg) ``` 我用vue组件渲染的代码:![图片说明](https://img-ask.csdn.net/upload/202004/07/1586268317_103842.jpg) 只能打开一级菜单 ```自己写了打开二级菜单的方法![图片说明](https://img-ask.csdn.net/upload/202004/07/1586268480_520441.jpg) 但是菜单后面的小箭头不会旋转 求解:我应该怎么样让他旋转

vue使用bscroll左右菜单联动,左侧栏目无法跟随右边滑动切换active

因为公司后端用其他框架,所以都是用cdn引用js写在一个页面了,现在只能达到点击左侧栏目、右侧到对应的栏目位置,但是右侧滑动的时候,左边栏目不跟随切换active 是右边li的索引值没有传到左边去吗?但是左边可以获取右边的索引了,点击也可以联动 html代码 ``` <div class="content"> <!--左边--> <div class="menu-wrapper" ref="menuWrapper"> <ul> <li v-for="(food,index) in foods" @click="menuClick(index,$event)" :class="{'active': activeIndex == index}"> {{food.class}} <i class="num"></i> </li> </ul> </div> <!--右边--> <div class="foods-wrapper" id="wrapper" ref="foodsWrapper"> <ul> <li v-for="(food,index) in foods" :key="food.id" class="food-list-hook"> <div class="class-title"> {{food.class}} </div> <div v-for="food in food.list"> <div class="item"> <div class="itemleft" @click="menuShow(food)"> <div class="item-img"> <img :src="food.imgs" alt=""> </div> </div> <div class="itemright"> <div class="title"> {{food.name}} </div> <div class="price"> <i class="fa fa-cny"></i> <span> {{food.price}} </span> </div> </div> </div> </div> </li> </ul> </div> </div> ``` js代码 ``` new Vue({ el: '#app', data() { return { foods: [], listHeight: [], foodsScrollY: 0 } }, created() { axios.get('data.json').then(response = >{ this.foods = response.data.foods; this.$nextTick(() = >{ this._initScroll(); // 初始化scroll this._calculateHeight(); // 初始化列表高度列表 }) }); }, computed: { activeIndex() { for (let i = 0; i < this.listHeight.length; i++) { let topHeight = this.listHeight[i] let bottomHeight = this.listHeight[i + 1] if (!bottomHeight || (this.foodsScrollY >= topHeight && this.foodsScrollY < bottomHeight)) { return i } } return 0 } }, methods: { _initScroll() { this.menuWrapper = new BScroll(this.$refs.menuWrapper, { click: true }); this.foodsScroll = new BScroll(this.$refs.foodsWrapper, { probeType: 3 }); // 监控滚动事件 this.foodsScroll.on('scroll', (pos) = >{ this.foodsScrollY = Math.abs(Math.round(pos.y)) }) }, _calculateHeight() { let foodList = this.$refs.foodsWrapper.getElementsByClassName('food-list-hook'); let height = 0 this.listHeight.push(height) for (let i = 0; i < foodList.length; i++) { let item = foodList[i] height += item.clientHeight this.listHeight.push(height) } }, menuClick(index, event) { if (!event._constructed) { return } this.foodsScroll.scrollTo(0, -this.listHeight[index], 300) } } }); ```

Vue用v-for循环渲染数组数据,数组数据更新时,视图没有更新

Vue用v-for循环渲染数组数据,数组数据更新时,视图没有更新,filter,和变异方法都试过了,好像都不行,看网上有说是重复实例化vue的原因,但是不太明白。 ![图片说明](https://img-ask.csdn.net/upload/201709/07/1504762347_121687.png) html是这样的 ![图片说明](https://img-ask.csdn.net/upload/201709/07/1504751164_800070.png) 要实现的是,点击触发but()方法,然后ajax获取数据,用v-for循环渲染出来。现在的问题是,第一次拿到数据可以正常渲染,当第二次触发方法时,ajax重新获取到新数据,vue中的data也已经改变了,但是页面上没改变。没弄懂怎么回事。

vue中echarts图无法渲染

我在父组件中定义了一个容器,然后定义了echarts图的基本配置项,在created中调用一个方法,获取后台数据,然后将数据传递到子组件中渲染echarts图,现在数据都能成功传递,但是一直无法成功渲染echarts图 以下为父组件代码 ``` // 父组件代码 <template> <div> <div class="leftChart"> <linegraph :id="'leftChart'" :data="option1" style="height:330px;width:100%"></linegraph> </div> </div> </template> <script> // 引入子组件 import linegraph from "./EchartsShow.vue"; // 引入网络请求方法 import { getSumData } from "@/api/crd/orgLimitView/orgView" export default { data () { return { // echarts图基本配置项,未定义具体数据 option1: { title: { text: '授信额度结构', subtext: '行业维度', x: 'center', top: '3%' }, tooltip: { trigger: 'item', formatter: "{a} <br/>{b} : {c} ({d}%)" }, legend: { orient: 'vertical', left: '2%', top: '2%' }, series: [ { name: '行业', type: 'pie', radius: '55%', center: ['50%', '55%'], itemStyle: { emphasis: { shadowBlur: 10, shadowOffsetX: 0, shadowColor: 'rgba(0, 0, 0, 0.5)' } } } ] }, } }, created () { this.getSum() }, methods: { getSum () { // 调用get请求方法,获取后台数据,由于进度问题,目前只能传递固定的参数,才能获取到测试数据 getSumData('1', '01000').then(res => { if (res.status != 200) { return this.$message.error('获取数据失败,请重试') } const datas = res.data.data // 由于拿到的数据非常复杂繁多,需要进行一些处理,才能拿到需要的数据 this.option1.legend.data = this.tableDatas.map(item => { // 由于后台拿到的数据,都是数字类的码值,this.dicInd[item.industry] 用来翻译后台数据 return this.dicInd[item.industry] }) this.option1.series[0].data = this.tableDatas.map(item => { return { value: item.approveExpAmount, name: this.dicInd[item.industry] } }) console.log(this.option1.legend.data, '行业'); console.log(this.option1.series[0].data, '行业带数据'); }) } }, components: { linegraph } } </script> ``` 以下为子组件代码 ``` // 子组件代码 <template> <div v-bind:id="id" v-bind:data="data"></div> </template> <script> import echarts from "echarts"; export default { name: "echartsShow", data () { return { ChartLineGraph: null }; }, // 深度监听 父组件刚开始没有值,只有图标的配置项 // 父组件ajax请求后改变数据的值,传递过来,图标已生成,监听传过来的值的改变 watch: { data: { deep: true, handler: function (newVal, oldVal) { if (newvalue) { this.drawLineGraph(this.id, newVal) } else { this.drawLineGraph(this.id, oldVal) } } } }, props: ["id", "data"], created() { console.log(this.data, '打印传递过来的图表数据') }, mounted () { this.drawLineGraph(this.id, this.data); console.log(this.id, '打印id值') console.log(this.data, '打印data值') }, methods: { drawLineGraph (id, data) { let _this = this; let myChart = document.getElementById(id); this.ChartLineGraph = echarts.init(myChart); this.ChartLineGraph.setOption(data); window.addEventListener("resize", function () { _this.ChartLineGraph.resize(); }); } }, beforeDestroy () { if (this.ChartLineGraph) { this.ChartLineGraph.clear(); } } }; </script> ``` 从后台获取数据后,成功传递给子组件,但是echarts无法成功渲染 ![图片说明](https://img-ask.csdn.net/upload/202001/07/1578384445_959195.png) ![图片说明](https://img-ask.csdn.net/upload/202001/07/1578384684_683561.png) ![图片说明](https://img-ask.csdn.net/upload/202001/07/1578384616_880352.png) ![图片说明](https://img-ask.csdn.net/upload/202001/07/1578384792_786796.png) 经过多次尝试,我遇到了一个奇怪的问题 ![图片说明](https://img-ask.csdn.net/upload/202001/07/1578385072_241075.png) ![图片说明](https://img-ask.csdn.net/upload/202001/07/1578385147_470918.png) 求各位大佬指点,我的代码哪个地方写错了,如何才能成功渲染echarts

Vue.js怎么嵌套后,页面渲染失败?求解答

``` <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="vue.js"></script> <script src="node_modules/vue-router/dist/vue-router.js"></script> <style> .router-link-active { font-size: 20px; color: red; } </style> </head> <body> <div id="box"> <ul> <li> <router-link to='/home'>主页</router-link> </li> <li> <router-link to='/news'>新闻</router-link> </li> </ul> <!--路由配置的组件将会渲染在这里--> <div> <router-view></router-view> </div> </div> <template id="home"> <h3>我是主页</h3> <div> <ul> <li> <router-link to='/home/login'>登陆</router-link> </li> <li> <router-link to='/home/resgist'>注册</router-link> </li> </ul> </div> <h2>{{$route.params.id}}</h2> <div> <router-view></router-view> </div> </template> <template id="news"> <div> <h3>我是新闻</h3> <ul> <li> <router-link to='/news/detail'>详细</router-link> </li> </ul> </div> <div> <router-view></router-view> </div> </template> <template id="login"> <div> <p>请登录</p> </div> <div> <router-view></router-view> </div> </template> <template id="resgist"> <div> <p>请注册</p> </div> <div> <router-view></router-view> </div> </template> <template id="detail"> <div> <!-- <h2>Details:{{$route.params.id}}</h2>--> </div> <div> <router-view></router-view> </div> </template> </body> <script> var Home = { template: '#home' }; var News = { template: '#news' }; var Login = { template: '#login' } var Resgist = { template: '#resgist' } var Detail = { template: '#detail' } //创建router实例 var router = new VueRouter({ routes: [ { path: '/home/:id', component: Home, children: [ {path: 'login', component: Login}, {path: 'resgist', component: Resgist} ] }, { path: '/news/:id', component: News, children: [ {path: 'detail', component: Detail} ] } ] }); //创建和挂载根实例 var app = new Vue({ router: router }).$mount('#box'); </script> </html> ```

关于vue修改属性后页面没有渲染的问题

我不知道这是啥问题 为啥这跟我在官网看的不一样,不是说修改了属性就会自动渲染的么。。。 第一步就给我搞这一出,有大神能告诉我这是什么原因么?修改属性页面没有自动渲染

vue2.0如何指定vue组件渲染到某一个html页面上呢= =

vue小白求教,vue项目创建完毕,都是渲染到index.html页面上的,假如我创建了一个页面page.html,我想把vue组件渲染到page.html页面上,我要怎么改代码呢T T。。。

在vue.js中的条件渲染中的数组子

<div class="post-text" itemprop="text"> <p>I have api on laravel and front on vue + laravel. I am getting all the data from api and pass it to view. Now I want to do conditional rendering. </p> <p>My array looks like:</p> <pre><code> "data" =&gt; array:2 [▼ 0 =&gt; array:5 [▶] 1 =&gt; array:5 [▶] </code></pre> <p>I want to show div if topic from link is the same topic from array. But I do not know how to search and compare that words. So it will be like that:</p> <pre><code>v-if="$topic == this.topic" </code></pre> <p>But now I can only use</p> <pre><code>v-if="$data[]['0']['topic']" </code></pre> <p>and then I have the same topic on all my views.</p> <p>My link looks like:</p> <pre><code>/user/{topic}/post </code></pre> <p>How to do it correctly guys?</p> </div>

VUE 多级菜单,路由变了页面内容没变

需求是这样的: 分为顶部1级菜单,和左侧2,3级菜单,点击顶部菜单左侧会联动 ![图片说明](https://img-ask.csdn.net/upload/201907/23/1563848300_684787.png) 点击1,2,3每级菜单页面都会跟着变, 例如点击监控系统1级菜单,就会默认进入冷站页面 现在顶部菜单是没有问题的,就是2,3级出现问题了,谢谢大神指导,刚刚注册没有C币,可加微信发红包,谢谢了 ``` //index.js let routes = [ { path: '/login', name: 'login', component: Login }, { path: '/', component: Main, children: [{ path: '/monitor/cold', component: Cold, iconCls: 'fa fa-home fa-fw', name: '系统监控', children: [ { path: '/monitor/cold', component: Cold, iconCls: '/static/menu/ba.png', name: '楼宇自控', children: [ { path: '/monitor/cold', component: Cold, iconCls: '/static/menu/ba.png', name: '冷站' }, { path: '/monitor/ahu', component: Ahu, iconCls: '/static/menu/fire.png', name: '组合式空调' } ] }, { path: '/monitor/fire', component: Fire, iconCls: '/static/menu/fire.png', name: '消防监控', children:[] }, { path: '/monitor/door', component: Door, iconCls: '/static/menu/mj.png', name: '门禁监控', children:[] } ] }] }, //后面还有很多123级菜单,省略 ] //Main.vue <template> <section> <el-container class="container"> <!--页眉--> <el-header class="header"> <el-row> <el-menu :default-active="$route.path" class="menu-ul" mode="horizontal" @select="handleSelect" background-color="#06283C" text-color="#fff" active-text-color="#ffd04b" > <template v-for="(item,index) in menus"> <el-menu-item v-for="child in item.children" :index="child.path" :key="child.path" @click="initLeftMenu(child)" style="width:120px;"><i :class="child.iconCls" style="margin-left: -20px;margin-right: 10px;"></i>{{child.name}}</el-menu-item> </template> </el-menu> </el-row> </el-header> <el-container> <el-aside class="left-aside" width="50px" v-show="$route.path != '/home'"> <el-menu v-show="$route.path.indexOf('monitor') > 0" default-active="1-2" class="el-menu-left" :collapse="true"> <template v-for="(item,index) in leftMenus"> <!--如果有3级菜单--> <el-submenu v-if="item.children.length > 0" :index="item.path" :key="item.path" @click="$router.push(item.path)"> <template slot="title"> <img :src="item.iconCls"/> </template> <el-menu-item-group v-if="item.children != null && item.children != '' && item.children != []"> <span slot="title">{{item.name}}</span> <el-menu-item v-for="children in item.children" :index="children.path" :key="children.path" @click="$router.push(children.path)" style="width:120px;padding-left: 20px !important;"><i :class="children.iconCls" style="margin-left: -20px;margin-right: 10px;"></i>{{children.name}}</el-menu-item> </el-menu-item-group> </el-submenu> <!--如果没有3级菜单--> <el-menu-item v-if="item.children.length == 0" :index="item.path" :key="item.path" @click="$router.push(item.path)"> <img :src="item.iconCls"/> </el-menu-item> </template> </el-menu> </el-aside> <el-main class="main"> <transition name="fade" mode="out-in"> <router-view></router-view> </transition> </el-main> </el-container> </el-container> </section> </template> let data = () => { return { menus: [],//顶部一级 leftMenus:[]//左侧23级 } } //点击顶部1级菜单联动事件 let initLeftMenu = function (child) { this.$router.push(child.path) this.leftMenus = child.children } ```

关于vue + ES6 在IE里面的渲染问题

本人小白,新接触Vue,按照 Vue官方手脚架搭建 代码大致是这样的 https://github.com/luyiqin123456/vuetest.git ![图片说明](https://img-ask.csdn.net/upload/201705/11/1494482144_467711.png) IE浏览器里面无法渲染,报错 “Promise”未定义 大神们有没有什么方法可以解决这个问题

求一个vue 小动画,点击滚动展开,再次点击滚动隐藏,谢谢

![![图片说明](https://img-ask.csdn.net/upload/201808/29/1535513945_484726.png)图片说明](https://img-ask.csdn.net/upload/201808/29/1535513935_116666.png)

关于vue头部导航栏菜单展示问题

ant design vue 当中配置路由菜单后,能在页面重发打开两个相同的菜单甚至多个,如下图: ![图片说明](https://img-ask.csdn.net/upload/202004/28/1588044447_989238.png) 这个问题该如何解决,坐等大佬

Vue.js页面渲染生命周期问题

使用Vue.js做瀑布流布局时,在mounted中直接调用waterFall函数,页面上图片布局是乱的,设置了setTimeout延迟0ms渲染也不起作用。 在safari和chrome上页面正常了,设置延迟100ms,页面加载后布局正常,但是明显的可以看到布局的变化过程,效果不好,延迟值再设置低一些,就不起作用; 在火狐浏览器,要设置延迟150ms以上才起作用,而且也是可以看到页面布局的变化过程,体验不好。 求各位大师指点明路。 ```, <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script src="../../../vue.js"></script> <style> *{margin: 0;padding: 0} #main{position: relative;margin:0 auto;} #main::after{content: '';display: block;height: 0;clear: both;visibility: hidden;} .pic{float: left;padding: 15px 0 0 15px;} .pic img{padding: 10px;width: 165px;height: auto;border: 1px solid #ccc;border-radius: 5px;box-shadow: 0 0 5px #ccc;} </style> </head> <body> <div id="main"> <div class="pic" v-for='img in images'> <img :src="img"> </div> </div> <script type="text/javascript"> var vm = new Vue({ el : '#main' , data : { images:[ 'images/0.jpg','images/1.jpg','images/2.jpg','images/3.jpg','images/4.jpg','images/5.jpg','images/6.jpg','images/7.jpg','images/8.jpg','images/9.jpg', 'images/10.jpg','images/11.jpg','images/12.jpg','images/13.jpg','images/14.jpg','images/15.jpg','images/16.jpg','images/17.jpg','images/18.jpg','images/19.jpg', 'images/20.jpg','images/21.jpg','images/22.jpg','images/23.jpg','images/24.jpg','images/25.jpg','images/26.jpg','images/27.jpg','images/28.jpg','images/29.jpg', 'images/30.jpg','images/31.jpg','images/32.jpg','images/33.jpg','images/34.jpg','images/35.jpg','images/36.jpg' ] }, mounted:function(){ var _this = this ; setTimeout(function(){ _this.waterFall('main','pic'); },0); //safari浏览器下必须迟延30ms执行waterFall,布局才会正常渲染,其他浏览器下设置为0即可。 }, methods:{ getByClass:function(oParent,clsName){ return oParent.getElementsByClassName(clsName); }, waterFall:function(Parent,clsName){ var _this = this ; var oParent = document.getElementById(Parent); var oBoxs = _this.getByClass(oParent,clsName); var oBoxW = oBoxs[0].offsetWidth ; //获取每列的宽度 var pageW = document.documentElement.clientWidth ; var cols = Math.floor(pageW / oBoxW) ; //判断页面列数 oParent.style.cssText = 'width:' + cols*oBoxW +'px;'; //设定main的宽度并居中 var arr = [] ; //用于存放每列的高度 for(var i=0;i<oBoxs.length;i++){ if( i<cols ){ arr.push(oBoxs[i].offsetHeight); }else { var minH = Math.min.apply('null',arr); //求出高度最低列的值 var index = _this.getMinIndex(arr,minH) ; //高度最低列的索引值 oBoxs[i].style.position = 'absolute' ; oBoxs[i].style.top = minH + 'px' ; oBoxs[i].style.left = oBoxs[index].offsetLeft + 'px' ; arr[index] += oBoxs[i].offsetHeight ; //更新数组中每列的高度 } } }, getMinIndex:function(arr,value){ //获取数组arr中,值为value的索引值 for(var i=0;i<arr.length;i++){ if(arr[i] == value){ return i ;} } } }, }); </script> </body> </html> ```

Vue.js怎么在列表渲染同时添加样式?

在下起步小白,在写微信小程序的时候用列表渲染可以实现样式,如图![小程序代码截图](https://img-ask.csdn.net/upload/201705/02/1493708510_587619.jpg);我想着vue和小程序很像,就想试试用同样的方法渲染样式,但貌似不行。请问各位大神vue可不可以类似实现或者更简便实现???

iview 左边菜单栏问题?

我点击菜单后会收缩, 点击店铺分类之后就会收缩 ![图片说明](https://img-ask.csdn.net/upload/201912/06/1575612547_524883.png) 点击之后 ![图片说明](https://img-ask.csdn.net/upload/201912/06/1575612562_484044.png) 代码: ``` <template> <div class="slide"> <Menu accordion theme="dark" :active-name="activeName" width="auto" @on-select="changeMenu"> <div v-for="(item, index) in menuList" :key="index"> <MenuItem v-if='item.id == 1' :name="item.name"> <i class="icon" :class="item.iconClass"></i>{{ item.menuName }} </MenuItem> <Submenu v-else :name="item.name"> <template slot="title"> <i class="icon" :class="item.iconClass"></i>{{ item.menuName }} </template> <MenuItem v-for="(item2, index2) in item.children" :key="index2" :name="item2.name">{{ item2.menuName }}</MenuItem> </Submenu> </div> </Menu> </div> </template> <script> import { pagesRouter } from '@/router/index' export default { name: 'slideMenu', data() { return { activeName: "", menuList: [], showMenu: this.menuFlag } }, props: ["menuFlag", "widthFlag"], created() { // 获取缓存中菜单信息 var data = JSON.parse(sessionStorage.getItem("menuData")); this.menuList = data; }, methods: { changeMenu(name){ // 修改菜单显示状态,并传值给 Main 组件 if (!this.widthFlag) { this.showMenu = false; this.$emit("changeMenuFlag", this.showMenu); } localStorage.setItem("menuName",name) this.$router.push({name}); } }, watch: { }, computed: { }, mounted() { this.activeName = this.$route.path;//用name = path; } }; </script> ```

vue的渲染问题,渲染的时候说该列表的某个属性是null,但内容还是可以渲染出来。求优化。

问题是这样的,我在**vue**的**js data()**逻辑里命名了一个对象或者数组:**orderList:[]**,然后在**created()**的时候通过**axios**异步获取数据给它。 前端**template**里绑定该数组对象里的某些属性名,控制台console会报红色的该属性是**null**,但是前端可以显示内容。直接贴代码吧。 这是js: ``` data () { return { orderList: {} } }, created () { this.axios.get(thisUrl) .then(res => { res = res.data if(res.code === 0) { this.orderList = res.data console.log('orderList:', this.orderList); } else { this.$notify(res.msg) } }) .catch(err => { this.$notify('ERR: 获取订单详情失败,请稍后重试!') }) }, ``` 这是前端template: ``` <span class="fontEllipsis fontColor">{{orderList.item_goods.summary}}</span> ``` 报错截图: ![图片说明](https://img-ask.csdn.net/upload/201907/12/1562923224_657764.png) 现在想到的两种方法就是: 1、orderList写成: ``` orderList:{ item_goods:{ summary } } ``` 这样的缺点是麻烦,而且后端的属性名要是一改其实这里还得改。 2、直接判断length: ``` <span v-if="orderList.length" class="fontEllipsis fontColor">{{orderList.item_goods.summary}}</span> ``` 这样吧。。。又有页面样式的跳动,毕竟vif要重新渲染的。而且万一不是数组呢?万一后端给我个null呢? 问题和自己的两个解决方法就在这里,希望可以抛砖引玉,各位大神能给个更好的方法?本人有点强迫症,而且Android还好,但在ios系统会报错导致逻辑走不通页面不能显示。求指点。

vue 改变一个地方, 其他地方自动渲染改变,该如何实现呢?

我想做一个自动切换语言的页面, 目前遇到的问题便是数据改变了, 但是view无法渲染。 思路: 在vuex中创建了 store,state,getter跟mutations 代码 ``` // state export default { currentlanguage: 'cn', // 当前语言 } ``` ``` // getters export default { getlan: (state) => { return state.lan }, getcurrentlanguage: (state) => { return state.currentlanguage } } ``` ``` import * as types from './mutation-type' export default { [types.SET_LAN] (state, currentlanguage) { console.log(currentlanguage) state.currentlanguage = currentlanguage.lan } } ``` app.vue 中调用 ![图片说明](https://img-ask.csdn.net/upload/201809/12/1536742288_15696.jpeg) index.vue 中调用 ![图片说明](https://img-ask.csdn.net/upload/201809/12/1536742369_290519.jpeg) 得到的结果 ![图片说明](https://img-ask.csdn.net/upload/201809/12/1536742404_317258.jpg) 出来中文的版本完全没问题 ![图片说明](https://img-ask.csdn.net/upload/201809/12/1536742438_65810.jpeg) 切换为英文的时候, 就上面导航变了, 还有state的数据也改变了, 但没有渲染出来, 要如何才能达到预想的效果呢?

大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了

大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

点沙成金:英特尔芯片制造全过程揭密

“亚马逊丛林里的蝴蝶扇动几下翅膀就可能引起两周后美国德州的一次飓风……” 这句人人皆知的话最初用来描述非线性系统中微小参数的变化所引起的系统极大变化。 而在更长的时间尺度内,我们所生活的这个世界就是这样一个异常复杂的非线性系统…… 水泥、穹顶、透视——关于时间与技艺的蝴蝶效应 公元前3000年,古埃及人将尼罗河中挖出的泥浆与纳特龙盐湖中的矿物盐混合,再掺入煅烧石灰石制成的石灰,由此得来了人...

讲一个程序员如何副业月赚三万的真实故事

loonggg读完需要3分钟速读仅需 1 分钟大家好,我是你们的校长。我之前讲过,这年头,只要肯动脑,肯行动,程序员凭借自己的技术,赚钱的方式还是有很多种的。仅仅靠在公司出卖自己的劳动时...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

我说我不会算法,阿里把我挂了。

不说了,字节跳动也反手把我挂了。

优雅的替换if-else语句

场景 日常开发,if-else语句写的不少吧??当逻辑分支非常多的时候,if-else套了一层又一层,虽然业务功能倒是实现了,但是看起来是真的很不优雅,尤其是对于我这种有强迫症的程序"猿",看到这么多if-else,脑袋瓜子就嗡嗡的,总想着解锁新姿势:干掉过多的if-else!!!本文将介绍三板斧手段: 优先判断条件,条件不满足的,逻辑及时中断返回; 采用策略模式+工厂模式; 结合注解,锦...

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

为什么你不想学习?只想玩?人是如何一步一步废掉的

不知道是不是只有我这样子,还是你们也有过类似的经历。 上学的时候总有很多光辉历史,学年名列前茅,或者单科目大佬,但是虽然慢慢地长大了,你开始懈怠了,开始废掉了。。。 什么?你说不知道具体的情况是怎么样的? 我来告诉你: 你常常潜意识里或者心理觉得,自己真正的生活或者奋斗还没有开始。总是幻想着自己还拥有大把时间,还有无限的可能,自己还能逆风翻盘,只不是自己还没开始罢了,自己以后肯定会变得特别厉害...

男生更看重女生的身材脸蛋,还是思想?

往往,我们看不进去大段大段的逻辑。深刻的哲理,往往短而精悍,一阵见血。问:产品经理挺漂亮的,有点心动,但不知道合不合得来。男生更看重女生的身材脸蛋,还是...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

你打算用Java 8一辈子都不打算升级到Java 14,真香

我们程序员应该抱着尝鲜、猎奇的心态,否则就容易固步自封,技术停滞不前。

无代码时代来临,程序员如何保住饭碗?

编程语言层出不穷,从最初的机器语言到如今2500种以上的高级语言,程序员们大呼“学到头秃”。程序员一边面临编程语言不断推陈出新,一边面临由于许多代码已存在,程序员编写新应用程序时存在重复“搬砖”的现象。 无代码/低代码编程应运而生。无代码/低代码是一种创建应用的方法,它可以让开发者使用最少的编码知识来快速开发应用程序。开发者通过图形界面中,可视化建模来组装和配置应用程序。这样一来,开发者直...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

《经典算法案例》01-08:如何使用质数设计扫雷(Minesweeper)游戏

我们都玩过Windows操作系统中的经典游戏扫雷(Minesweeper),如果把质数当作一颗雷,那么,表格中红色的数字哪些是雷(质数)?您能找出多少个呢?文中用列表的方式罗列了10000以内的自然数、质数(素数),6的倍数等,方便大家观察质数的分布规律及特性,以便对算法求解有指导意义。另外,判断质数是初学算法,理解算法重要性的一个非常好的案例。

《Oracle Java SE编程自学与面试指南》最佳学习路线图(2020最新版)

正确选择比瞎努力更重要!

一文带你入门Java Stream流,太强了

两个星期以前,就有读者强烈要求我写一篇 Java Stream 流的文章,我说市面上不是已经有很多了吗,结果你猜他怎么说:“就想看你写的啊!”你看你看,多么苍白的喜欢啊。那就“勉为其难”写一篇吧,嘻嘻。 单从“Stream”这个单词上来看,它似乎和 java.io 包下的 InputStream 和 OutputStream 有些关系。实际上呢,没毛关系。Java 8 新增的 Stream 是为...

立即提问
相关内容推荐