008 前端vue

发布于:2025-08-13 ⋅ 阅读:(17) ⋅ 点赞:(0)

vue优点之一:元素和数据能同时变化

一、vue2

1.基本框架

基本写法:

<template>
  <div>
  </div>

</template>
<script lang="ts">
// 以下是vue2的写法
export default{
  // 所有数据放在data里面
  data() {
    return{
    }
   
  },
  //所有函数都放在这里
  methods:{

  }
}
</script>
<style scoped></style>

2.表单控件获取值

3.表单控件获取文本信息

4.绑定事件

5.单选按钮

6.选择多个选项(数组)

7.信息成组出现

8.遍历多个值

9.总汇

10.追加

添加样式和css一样

11.v-if

是否有

12.v-show

是否展示

13.全部代码

<template>
  <div>
    <!-- 单选/多选/下拉框这种表单控件,要获取值,用v-model -->
    <!-- br表示插入一个换行符 -->
     <!-- 获取文本信息用两个花括号 -->
    姓名:<input type="text" v-model="username" >{{ username }}<br>
    成绩:<input type="text" v-model="score">{{ score }}<br>
    <!-- 设置按钮成绩提高 -->
     <!-- 给button绑事件,点击之后触发添加成绩的方法 addScore()-->
    <button v-on:click="addScore()" >成绩提高</button>
      <div>
  <!-- <input type="radio"> 表示单选按钮,用于从一组选项中选择唯一的一个选项 -->
  <!-- 想让对象成组出现,v-model="对象名+属性名" -->
  性别:<input type="radio" value="1" v-model="userInfo.sex">男<input type="radio" value="2" v-model="userInfo.sex">女<br>
        年龄:<input type="number" v-model="userInfo.age"><br>
        <!-- 多个选项选一个 -->
        学科:<select v-model="userInfo.obj">
          <option value="Math">数学</option>
          <option value="Chinese">语文</option>
          <option value="English">英语</option>
        </select><br>
        <!-- 数组用循环实现成组出现 -->
      爱好:<span v-for="(skill, index) in userInfo.interest" :key="index">{{ skill }}</span>
      <!-- 设置添加选项按钮,点击这个按钮触发新增爱好方法,并且绑定新爱好这个输入框 -->
      新爱好:<input type="text" v-model="newInterest"><button v-on:click="addInterest()">增加新爱好</button>
       <!-- 总汇 -->
       个人信息<div>{{ userInfo }}</div>
      </div>
  </div>
</template>

<script lang="ts">
// 以下是vue2的写法
export default{
  // 所有数据放在data里面
  data() {
    return{
      username:"张三",
      score:500,
      userInfo:{
        sex:1,
        age:23,
        obj:"Math",
        // 爱好可以有很多个,所以可以用数组
        interest:['篮球','足球','乒乓球']

      },
      // 新增爱好,初始值为空
      newInterest:""

    }
   
  },
  //所有函数都放在这里
  methods:{
    addScore(){
      this.score+=10
    },
    // 添加方法:新增爱好
  addInterest(){
    // 如果不是空的电话,执行下面语句
    if(this.newInterest)
    // 增加
    this.userInfo.interest.push(this.newInterest)

  }

  }
}
</script>
<style scoped></style>

二、vue3

只能在控制台打印

<template>
    <div>
    <!-- 单选/多选/下拉框这种表单控件,要获取值,用v-model -->
    <!-- br表示插入一个换行符 -->
     <!-- 获取文本信息用两个花括号 -->
    姓名:<input type="text" v-model="username" >{{ username }}<br>
    成绩:<input type="text" v-model="score">{{ score }}<br>
    <!-- 设置按钮成绩提高 -->
     <!-- 给button绑事件,点击之后触发添加成绩的方法 addScore()-->
    <button v-on:click="addScore()" >成绩提高</button>
    </div>

</template>
<script lang="ts">
  export default{
    setup() {
      let username="李华"
      let score =500
      function addScore(){
        console.log(score)
        score+=20
      }
      return{username,score,addScore}
      
    },}

</script>
<style scoped></style>

1.双向绑定

ref函数(自动导入)

2.封装

<template>
    <div>
    <!-- 单选/多选/下拉框这种表单控件,要获取值,用v-model -->
    <!-- br表示插入一个换行符 -->
     <!-- 获取文本信息用两个花括号 -->
    姓名:<input type="text" v-model="username" >{{ username }}<br>
    成绩:<input type="text" v-model="score">{{ score }}<br>
    <!-- 设置按钮成绩提高 -->
     <!-- 给button绑事件,点击之后触发添加成绩的方法 addScore()-->
    <button v-on:click="addScore()" >成绩提高</button>
    </div>

</template>
<script lang="ts">
import { ref } from 'vue'

  export default{
    setup() {
      let username=ref("李华")
      let score =ref(500)
      function addScore(){
        console.log(score)
        score.value +=20
      }
      return{username,score,addScore}
      
    },}

</script>
<style scoped></style>
<template>
  <div>
    姓名:
    <input type="text" v-model="userInfo.username">{{ userInfo.username }}<br>
    成绩:
    <input type="text" v-model="userInfo.score">{{ userInfo.score }}<br>
    <button v-on:click="addScore">成绩提高</button>
  </div>
</template>

<script lang="ts">
import { reactive } from 'vue';

export default {
  setup() {
    // 用reactive创建响应式对象管理用户信息
    const userInfo = reactive({
      username: "李华",
      score: 500
    });
    // 定义事件处理函数,直接访问userInfo
    function addScore() {
      console.log(userInfo.score);
      userInfo.score += 20;
    }
    return { userInfo, addScore };
  }
};
</script>

<style scoped></style>

简洁写法


网站公告

今日签到

点亮在社区的每一天
去签到