首頁 > web前端 > Vue.js > 主體

vue.set有什麼用

coldplay.xixi
發布: 2020-11-12 11:56:30
原創
5047 人瀏覽過

vue.set的作用:1、透過【Vue.set】方法設定data屬性,程式碼為【Vue.set(data,'sex', '男') 】;2、使用【vm.$set】實例方法,代碼為【var key = 'content';】。

vue.set有什麼用

【相關文章推薦:#vue.js##】

vue.set的作用:

當產生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: &#39;3&#39;,
 info: {
  content: &#39;my name is test&#39;
 }
}
var key = &#39;content&#39;;
var vm = new Vue({
 el:&#39;#app&#39;,
 data: data,
 ready: function(){
  //Vue.set(data,&#39;sex&#39;, &#39;男&#39;)
  //this.$set(&#39;info.&#39;+key, &#39;what is this?&#39;);
 }
});
data.sex = &#39;男&#39;;//不生效
</script>
</body>
</html>
登入後複製

運行結果:

姓名:php中文网
年龄:3
性别:
说明:my name is test
登入後複製

在age及name都有get和set方法,但是在sex裡面並沒有這兩個方法,因此,設定了sex值後vue並不會自動更新視圖;

解決方法:

<script>
var data = {
 name: "脚本之家",
 age: &#39;3&#39;,
 info: {
  content: &#39;my name is test&#39;
 }
} 
var key = &#39;content&#39;;
new Vue({
 el:&#39;#app&#39;,
 data: data,
 ready: function(){
  Vue.set(data,&#39;sex&#39;, &#39;男&#39;);
  this.$set(&#39;info.&#39;+key, &#39;what is this?&#39;);
 }
});
</script>
登入後複製

1、通過Vue.set方法設定data屬性,如上:

Vue.set(data,&#39;sex&#39;, &#39;男&#39;)
登入後複製

2、您也可以使用vm.$set實例方法,這也是全域Vue.set方法的別名:

var key = &#39;content&#39;; //这种主要用于当对象中某个属性值动态生成时处理方式
this.$set(&#39;info.&#39;+key, &#39;what is this?&#39;);
//或
this.$set(&#39;info.content&#39;, &#39;what is this?&#39;);
登入後複製

#相關免費學習推薦:JavaScript(影片)

以上是vue.set有什麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板