Les fonctions de vue.set : 1. Définissez l'attribut de données via la méthode [Vue.set], le code est [Vue.set(data,'sex', 'male') ]; 2. Utilisez la méthode d'instance [vm.$set], le code est [var key = 'content';].
[Articles connexes recommandés : vue.js]
Le rôle de vue.set :
Lorsqu'une instance de vue est générée, parfois elle ne sera pas automatiquement mise à jour vers la vue lorsque les données sont attribué à nouveau. Remontez ;
Si vous ajoutez de nouveaux attributs à l'instance après la création de l'instance, cela ne déclenchera pas de mise à jour de la vue
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>vue $set</title> <script src="https://static.jb51.net/assets/vue/1.0.11/vue.min.js"></script> </head> <body> <div id="app"> 姓名:{{ name }}<br> 年龄:{{age}}<br> 性别:{{sex}}<br> 说明:{{info.content}} </div> <!-- JavaScript 代码需要放在尾部(指定的HTML元素之后) --> <script> var data = { name: "php中文网", age: '3', info: { content: 'my name is test' } } var key = 'content'; var vm = new Vue({ el:'#app', data: data, ready: function(){ //Vue.set(data,'sex', '男') //this.$set('info.'+key, 'what is this?'); } }); data.sex = '男';//不生效 </script> </body> </html>
Exécution des résultats :
姓名:php中文网 年龄:3 性别: 说明:my name is test
est disponible dans les méthodes get et set age et name, mais il n'y a pas ces deux méthodes dans sex, par conséquent, vue ne mettra pas automatiquement à jour la vue après avoir défini la valeur du sexe
Solution :
<script> var data = { name: "脚本之家", age: '3', info: { content: 'my name is test' } } var key = 'content'; new Vue({ el:'#app', data: data, ready: function(){ Vue.set(data,'sex', '男'); this.$set('info.'+key, 'what is this?'); } }); </script>
Vue.set(data,'sex', '男')
var key = 'content'; //这种主要用于当对象中某个属性值动态生成时处理方式 this.$set('info.'+key, 'what is this?'); //或 this.$set('info.content', 'what is this?');
Recommandations d'apprentissage gratuites associées : JavaScript(Vidéo)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!