如果我单向绑定只做展示,有没有不提前声明就能渲染模板的方法?现在模板和填充的数据都有可能是动态的,不能提前声明出来。大家怎么处理这个需求的?

1 cydysm May 10, 2020 via iPhone computed ? |
2 shintendo May 10, 2020 想象不出“不能提前声明”的场景,能举个例子么 |
3 gouflv May 10, 2020 via iPhone 对象内部的属性可以动态添加 |
5 rabbbit May 10, 2020 如果是指 data 里的属性的话, 可以用 Vue.set 方法 |
6 cs3230524 OP 换个方法吧,有没有办法让 data 里不存在的属性在模板渲染的时候不报错? 例如: var vm = new Vue({ el: "#app", data:{ a:"test" } }) .... <td>{{b}}</td> .... |
7 cs3230524 OP 能不能让不存在的属性 b,在渲染的时候不报错? |
8 Messiahhh May 10, 2020 给个空字符串不好吗 |
9 Jason2393 May 10, 2020 via iPhone @cs3230524 data 里定义一个对象 obj,你用户动态的属性都赋值给 obj,然后 obj.b 就行了呗? 如果要自动更新 ui,每次给 obj 赋值直接替换对象,而不是 obj.b=something ;或者 this.$set |
10 murmur May 10, 2020 不需要,可以用$set 进行设置,点号赋值有时候未必能响应,但是如果一开始就是不响应的属性,$set 可能都没用,必须先把旧的属性删了 |
11 zysuper May 10, 2020 data 里定义一个对象 obj, 然后用 immer 库修改 obj,最后把 data.obj = produce(baseState, draftState => { draftState.push({todo: "Tweet about it"}) draftState[1].dOne= true }) react 用户说。;) |
13 ghosthcp516 Jun 4, 2020 computed b () { return this.b || '' } |