1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Vue.set的使用</title>
- <!-- 引入vue -->
- <script type="text/javascript" src="../js/vue.js"></script>
- </head>
- <body>
- <!-- 准备好一个容器 -->
- <div id="root">
- <h1>学校信息</h1>
- <h2>学校名称:{{school.name}}</h2>
- <h2>学校地址:{{school.address}}</h2>
- <h2>校长是:{{school.leader}}</h2>
- <hr/>
- <h1>学生信息</h1>
- <button @click="addSex">添加一个性别属性,默认值是男</button>
- <h2>姓名:{{student.name}}</h2>
- <h2 v-if="student.sex">性别:{{student.sex}}</h2>
- <h2>年龄:真实{{student.age.rAge}},对外{{student.age.rAge}}</h2>
- <h2>朋友们</h2>
- <ul>
- <li v-for="(f,index) in student.friends" :key="index">
- {{f.name}}--{{f.age}}
- </li>
- </ul>
- </div>
-
- </body>
- <script type="text/javascript">
- Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示
- const vm = new Vue({
- el: '#root',
- data: {
- school:{
- name:'尚硅谷',
- address:'北京',
- },
- student:{
- name:'tom',
- age:{
- rAge:40,
- sAge:29
- },
- friends:[
- {name:'jerry',age:35},
- {name:'tony',age:36}
- ]
- }
- },
- methods: {
- addSex(){
- // Vue.set(this.student,'sex','男')
- this.$set(this.student,'sex','男')
- }
- },
- })
- // Vue.set只能给data中的某一个对象追加属性,而不能给data追加属性
- // 也就是说,Vue.set()的第一个参数,不能是vm或vm下的data
- // Vue.set也能用于修改数组,格式为Vue.set(数组对象,要修改的索引,新值),但是一般不这么用
- </script>
- </html>
|