首页 > 其他分享 >008、Vue3+TypeScript基础,数组和对象的响应式修改方法

008、Vue3+TypeScript基础,数组和对象的响应式修改方法

时间:2024-08-17 15:27:04浏览次数:5  
标签:TypeScript name reactive car 10px Person vue Vue3 008

01、App.vue代码如下:

<template>
  <div class="app">
    <h1>好好学习,天天向上</h1>
    <Person/>
  </div>
</template>

<script>
// JS或TS
import Person from './view/Person.vue'

export default {
  // App为根组件
  name: 'App',
  // 注册Person组件,注册后,在本单元中可以直接使用Person组件
  components: {Person}
}
</script>

<!--样式 scoped表示仅本单元有效-->
<style scoped>
.app {
  background-color: #ddd;
  box-shadow: 0 0 10px;
  border-radius: 10px;
  padding: 20px;
}
</style>

02.Person.vue代码如下:

<template>
  <div class="person">
    <h2>一辆{{ car.brand }}车,价值{{ car.price }}</h2>
    <button @click="changePrice">修改汽车价格</button>
    <br>
    <h1>游戏列表</h1>
    <ul>
      <li v-for="(game, index) in games" :key="game.id">{{ index + 1 }}.{{ game.name }}</li>
    </ul>
    <button @click="changeGameName">修改游戏名字</button>
  </div>
  <h3>对象测试:{{ obj.a.b.c }}</h3>
  <button @click="changeObjName">修改对象内容</button>
</template>

<script lang="ts" name="Person001" setup>
import {reactive} from 'vue'
// 数据变成响应式
let car = reactive({
  brand: '宝马',
  price: 1000
})
let games = reactive([
  {id: 'game001', name: '王者荣耀'},
  {id: 'game002', name: '原神'},
  {id: 'game003', name: '吃鸡'},
])
let obj = reactive({
  a: {
    b: {
      c: 10
    }
  }
})

// 方法
function changePrice() {
  car.price += 10
}

function changeGameName() {
  games[0].name = '幻塔'
}

function changeObjName() {
  obj.a.b.c += 10
}
</script>

<!--样式 scoped表示仅本单元有效-->
<style scoped>
.person {
  background-color: #ddd;
  box-shadow: 0 0 10px;
  border-radius: 10px;
  padding: 20px;

  button {
    margin: 0 5px;
  }
}
</style>

03、效果如下:

 

标签:TypeScript,name,reactive,car,10px,Person,vue,Vue3,008
From: https://www.cnblogs.com/tianpan2019/p/18364446

相关文章

  • 007、Vue3+TypeScript基础,使用reactive让界面数据变成响应式
    01、App.Vue代码:<template><divclass="app"><h1>好好学习,天天向上</h1><Person/></div></template><script>//JS或TSimportPersonfrom'./view/Person.vue'exportdefault{//Ap......
  • 006、Vue3+TypeScript基础,组合式API种直接返回渲染内容
    01、App.vue代码如下:<template><divclass="app"><h1>好好学习,天天向上</h1><Person/></div></template><script>//JS或TSimportPersonfrom'./view/PersonNew.vue'exportdefault{......
  • 005、Vue3+TypeScript基础,组合式API给子页面命名的2种方式
    01、App.vue代码如下:<template><divclass="app"><h1>好好学习,天天向上</h1><Person/></div></template><script>//JS或TSimportPersonfrom'./view/PersonNew.vue'exportdefault{......
  • 004、Vue3+TypeScript基础,使用组合式API的写法
    01、App.vue代码如下:<template><divclass="app"><h1>好好学习,天天向上</h1><Person/></div></template><script>//JS或TSimportPersonfrom'./view/PersonNew.vue'exportdefault{......
  • 002、Vue3+TypeScript基础,调用子页面和简单效果
    01、App.vue代码:<template><divclass="app"><h1>好好学习,天天向上</h1><Person/></div></template><script>//JS或TSimportPersonfrom'./view/Person.vue'exportdefault{//Ap......
  • 01、Vue3+TypeScript基础,创建第一个页面
    1、main.js代码如下://引入createApp用于创建Vue实例import{createApp}from'vue'//引入App.vue根组件importAppfrom'./App.vue'constapp=createApp(App);//App.vue的根元素id为appapp.mount('#app')2、App.vue代码如下:<template><div......
  • TypeScript 面试题汇总
    引言TypeScript是一种由微软开发的开源、跨平台的编程语言,它是JavaScript的超集,为JavaScript添加了静态类型系统和其他高级功能。随着TypeScript在前端开发领域的广泛应用,掌握TypeScript已经成为很多开发者必备的技能之一。本文将整理一系列常见的TypeScript面试题......
  • Vue3的学习---6
    6.Vue生命周期6.1生命周期6.1.1生命周期图示从图中可以看出,一个组件从被创建到最后被销毁,总共要经历8个过程:beforeCreate:实例创建前created:实例创建完毕beforeMount:DOM挂载前mounted:DOM挂载完毕beforeUpdate:数据更新前unpdated:数据更新完毕beforeUnmount:解除DOM挂载......
  • md-editor-v3适配VUE3的MarkDown编辑器-好用-简单-免费
     官方文档:https://imzbf.github.io/md-editor-v3/zh-CN/indexhttps://imzbf.github.io/md-editor-v3/zh-CN/index效果演示:(支持黑暗模式切换)toolbar包括:['bold','underline','italic','strikeThrough','title',......
  • vue-router,vue3介绍,vue3快速创建项目,常用api,生命周期,setup的特殊写法
    Ⅰvue-router【一】路由守卫#1路由守卫是什么 是否登录,登录后才能访问,没登录重定向到login作用:对路由进行权限控制#2全局守卫、独享守卫、组件内守卫使用importElementfrom'element-ui'//全局路由守卫-->前置路由守卫router.beforeEach((to,fr......