为啥 vue.js 的 data 中定义的变量不能赋值给对象?

Posted

技术标签:

【中文标题】为啥 vue.js 的 data 中定义的变量不能赋值给对象?【英文标题】:Why can't I assign an object to a defined variable in data in vue.js?为什么 vue.js 的 data 中定义的变量不能赋值给对象? 【发布时间】:2017-10-04 14:46:09 【问题描述】:

我用这种方式,但是不渲染

this.res = Object.assign(,
   this.res, 
     "employees": [
       "firstName": "John",
       "lastName": "Doe"
     , 
       "firstName": "Anna",
       "lastName": "Smith"
     , 
       "firstName": "Peter",
       "lastName": "Jones"
     ],
     'haha': 'baba',
     'papa': 
       'mimi': 'mimi'
     
   )

【问题讨论】:

【参考方案1】:

employees 未在渲染时(创建)定义。 你应该直接在data中写res对象。

【讨论】:

【参考方案2】:

不要在 get 方法中分配给对象,而是在 created 生命钩子中进行,因此 res 属性将在渲染页面之前填充数据

var vue = new Vue(
    el: "#app",
    data: function() 
        return  
            res: 
        
    ,
    created: function() 
        this.res = 
             "employees": [
               "firstName": "John",
               "lastName": "Doe"
             , 
               "firstName": "Anna",
               "lastName": "Smith"
             , 
               "firstName": "Peter",
               "lastName": "Jones"
             ],
             'haha': 'baba',
             'papa': 
               'mimi': 'mimi'
             
        
    
)
<script src="https://vuejs.org/js/vue.min.js"></script>
<div id="app" >
    <div>res.employees[0].firstName</div>
    <div> res.papa.mimi</div>
    <div> res.haha</div>
</div>

【讨论】:

以上是关于为啥 vue.js 的 data 中定义的变量不能赋值给对象?的主要内容,如果未能解决你的问题,请参考以下文章

未定义 vue 实例的全局变量

vuedata外面申明的变量模板引擎可以用吗

为啥 Laravel 中间件 CORS 不能与 Vue.js 一起使用

新人学vue,我明明导入了vue.js文件,但是data里面的数据就是不显示,这是为啥啊

vue.js(18)--父组件向子组件传值

vue.js为啥在component的template的root标签中不能使用v-for