vue模板里面直接取数组的元素值无效怎么办? 在vue中获取数据并渲染页面时出现问题,数据读取到了,但页面...

vuejs\u5982\u4f55\u6839\u636e\u4e0b\u6807\u4fee\u6539\u6570\u7ec4\u4e2d\u7684\u503c

this.$set(arr, index, value)

\u6ce8\u610f\u770b\u54e6\uff0chandleToFlag\u51fd\u6570\u8fd4\u56de\u503c\u662f\u5bf9\u8c61\u4e0d\u662f\u6570\u7ec4\u5427\uff01\u65e0\u6cd5\u76f4\u63a5\u7528\u4e8efor\u6e32\u67d3\u9875\u9762


检查数组的位置,需要放在data的function里面,模板元素才能取到这个值。
另外需要检查后面有没有重新赋值。

vue的计算属性
计算属性可以帮助我们简化代码,做到实时更新,不用再自己添加function去修改data。
首先看一下计算属性的基本写法(摘自官网)
var vm = new Vue({
el: '#demo',
data: {
firstName: 'Foo',
lastName: 'Bar'
},
computed: {
fullName: function () {
return this.firstName + ' ' + this.lastName
}
}
})12345678910111213

这样我们在模版里这样引入computed属性就可以了,他的效果个data一样
<div id="demo">{{ fullName }}</div>1

这样我们修改firstName或者lastName,fullName都会同步更新
这里我们主要不是讲这个,而是讲如果把 firstName和lastName放在一个数组里
比如这样[firstName ,lastName]
如果这时候修改数组中的一项会不会有相同的效果呢?
修改一下代码
var vm = new Vue({
el: '#demo',
data: {
nameArray:['Foo' ,'Bar']
},
computed: {
fullName: function () {
return this.nameArray[0] + ' ' + this.nameArray[1]
}
}
})123456789101112
methods: {
change () {
this.nameArray[0] = '123'
}1234

触发change方法可见fullName并没有变化。原因可能是vue没有监听到数组 nameArray的长度变化。
此时我们可以采用splice让数组的长度有个变化,这时候vue就可以监听到了
this.nameArray.splice(0, 1, '123')1

或者使用vue的$set方法
this.$set(this.nameArray, 0, '123')1

还有一点要注意,就是如果这个计算属性没有使用过,也就是说页面中没有引用,也没有其他变量使用他,同样不会触发计算属性。至少,来个console打印一下也行

  • vue妯℃澘閲岄潰鐩存帴鍙栨暟缁勭殑鍏冪礌鍊兼棤鏁堟庝箞鍔?
    绛旓細妫鏌ユ暟缁勭殑浣嶇疆锛岄渶瑕佹斁鍦╠ata鐨刦unction閲岄潰锛屾ā鏉垮厓绱犳墠鑳藉彇鍒拌繖涓銆傚彟澶栭渶瑕佹鏌ュ悗闈㈡湁娌℃湁閲嶆柊璧嬪笺
  • vue濡備綍鑾峰彇鏁扮粍鐨勪腑鐨勭涓涓璞
    绛旓細vue浣跨敤keys(object)鑾峰彇鏁扮粍涓殑绗竴涓璞銆傛牴鎹煡璇㈢浉鍏冲叕寮淇℃伅鏄剧ず锛屼娇鐢.keys(object)鍙互鍙栧嚭鏁扮粍涓殑绗竴涓璞★紝浼氭墦涔遍『搴忋
  • vue.js,v-for鑾峰彇褰撳墠鏁扮粍鐨鍐呭
    绛旓細
  • vue濡備綍鑾峰彇琛ㄦ牸鏌愯鏁版嵁
    绛旓細棣栧厛锛屾垜浠叏灞寮曞叆ant-design-vue锛屾湰鏂囩畝绉颁负antd锛屼负铓傝殎閲戞湇鎺ㄥ嚭鐨勪竴娆綰I缁勪欢锛屽湪main.js涓坊鍔犲嵆鍙備笅闈㈡垜浠娇鐢╝ntd鐨勮〃鏍肩粍浠讹紝鍦╠om鍏冪礌涓瀹氫箟琛ㄦ牸鐩稿叧灞炴у強鏁版嵁鐨勬潵婧愪俊鎭瓑銆俤ataSource涓烘暟鎹殑鏉ユ簮锛屾牸寮忎负鏁扮粍锛屾垜浠氳繃ajax鐨勬柟寮忚姹傚悗鍙鑾峰彇鏁版嵁銆傚垪淇℃伅闇瑕佸拰杩斿洖瀵硅薄鐨勫睘鎬у搴旓紝濡傛灉鏈変簺鍒...
  • 璇锋暀VUE浠鏁扮粍涓璇诲彇鍊肩殑闂?
    绛旓細濂瑰湪涓涗腑鍘婚櫎鐨勫彇鍊肩殑闂鐨勮瘽锛屽簲璇ユ槸瑕佸彇寰楀ス鐨勫钩鍧囧硷紝鍥犱负涓鑸潵璇村彧鏈夊钩鍧囧兼墠鑳藉浠h〃鍏ㄩ儴锛屾墍浠ョ殑璇濅篃灏辫兘澶熻繖鏍峰幓娌婚儙銆
  • Vue 瀵鏁扮粍杩涜鎼滅储鏌ヨ
    绛旓細瀹炵幇鏁堟灉濡備笅锛氬師鏂囬摼鎺ワ細 https://blog.csdn.net/qq_15267341/article/details/100175897 鎬荤粨锛氬疄鐜板師鐞嗘槸璁$畻灞炴э紝璁$畻灞炴у彲浠ュ綋浣滃睘鎬т娇鐢紝鎵浠ヤ笂闈㈠惊鐜槸鐢ㄨ绠楀睘鎬у畾涔夌殑鍚嶅瓧鍘诲惊鐜俲s鐨刬ndexOf杩斿洖鐨勬槸鏁扮粍锛屽師鏉ョ殑鏁扮粍鎬绘暟鎹笉浼氬彂鐢熸敼鍙橈紝杩欑偣姣旇緝濂姐傚叾浠栦緥瀛 https://www.cnblogs.com/luo...
  • Vue3鍩虹-妯℃澘璇硶
    绛旓細娉ㄦ剰:Vue2 template妯℃澘涓鍙兘鏈変竴涓牴鍏冪礌,Vue3 template妯℃澘涓厑璁告湁澶氫釜鏍瑰厓绱犮 鍦ㄥ紑鍙戜腑,鏈夋椂鍊欐垜浠鐨勫厓绱class涔熸槸鍔ㄦ佺殑,姣斿:褰撴暟鎹负鏌愪釜鐘舵佹椂,瀛椾綋鏄剧ず绾㈣壊,褰撴暟鎹彟涓涓姸鎬佹椂,瀛椾綋鏄剧ず榛戣壊銆 缁戝畾class鏈変袱绉嶆柟寮:瀵硅薄璇硶,鏁扮粍璇硶銆 鈶 瀵硅薄璇硶:鎴戜滑鍙互浼犵粰 :class (v-bind:class 鐨勭畝鍐) 涓...
  • 浠庣涓涓紑濮嬭緭鍑烘寚瀹氫釜鍒楄〃鍏冪礌鎬庝箞缂栬緫?
    绛旓細鍦 Vue 涓锛屽彲浠ヤ娇鐢ㄨ绠楀睘鎬ф潵瀹炵幇浠庣涓涓紑濮嬭緭鍑烘寚瀹氫釜鍒楄〃鍏冪礌鐨勫姛鑳姐備緥濡傦紝鍋囪鏈変竴涓鏁扮粍 `items`,瑕佷粠绗竴涓紑濮嬭緭鍑哄墠涓変釜鍏冪礌锛屽彲浠ュ垱寤轰竴涓绠楀睘鎬 `startFirstItems`,杩斿洖涓涓柊鐨勬暟缁勶細<template> {{ item }} </template> export default { data() { return { items: [...
  • 鍏ラ棬:Vue鍏ぇ甯哥敤鍐呯疆鎸囦护
    绛旓細鎺у埗DOM鐨勬樉绀轰笌闅愯棌锛堝间负true鏄剧ず锛屽间负false闅愯棌锛夛紝鍏跺師鐞嗕负 鍔ㄦ佸垱寤/绉婚櫎鍏冪礌 锛屼竴鑸敤浜庨粯璁や笉灞曠ず涓斿睍绀鸿緝灏 閰嶅悎 v-if 鎸囦护涓璧蜂娇鐢紝鍚﹀垯灏嗕笉浼氳璇嗗埆 鍩轰簬涓涓鏁扮粍鏉ュ惊鐜覆鏌撲竴涓垪琛ㄧ粨鏋勶紝瀹冩湁鐗瑰畾鐨勮娉曠粨鏋 v-for="item in items"娉ㄦ剰锛氬湪.vue鏂囦欢涓紝鍙鐢ㄥ埌 v-for鎸囦护...
  • 鍦vue璁$畻灞炴т腑i鎸囩殑鏄粈涔
    绛旓細鍦╲ue璁$畻灞炴т腑i鎸囩殑鏄綋鍓嶅惊鐜殑绱㈠紩鍊笺傚湪Vue鐨勬ā鏉夸腑鍙互浣跨敤v-for鎸囦护寰幆閬嶅巻鏁扮粍鎴栧璞$殑灞炴э紝i閫氬父鐢ㄤ簬琛ㄧず褰撳墠寰幆鐨勭储寮曞笺俰鍦ㄨ繖閲屽氨琛ㄧず褰撳墠閬嶅巻鐨勫厓绱鍦鏁扮粍涓鐨勭储寮曞硷紝鍙互鐢ㄤ簬鍋鏁扮粍鍏冪礌鐨勮绠楀拰鎿嶄綔銆
  • 扩展阅读:vue开源模板 ... vue数组的七种方法 ... 为什么vue3不推荐用vuex了 ... vue管理系统模板 ... vue模板官网 ... vue菜鸟教程 ... vue模板一键生成 ... 前端电商移动端模板vue ... vue响应式网站模板 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网