vue基础语法

本文介绍了Vue.js的基础语法,包括表单操作(如绑定、修饰符)、计算属性(用于简化模板逻辑并具备缓存特性)、侦听器(用于监听数据变化,常用于异步操作)、过滤器(用于格式化数据,如日期格式化和字符串转换),以及Vue的生命周期(挂载、更新和销毁阶段的各个钩子函数)。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、表单操作

1.表单绑定语法

    <script src="vue.js"></script>
  </head>
  <body>
    <div id="app">
      <form action="">
        姓名 <input type="text" v-model="name" />
        性别
        <input type="radio" v-model="sex" value="男" />男
        <input type="radio" v-model="sex" value="女" />女 爱好
        <input type="checkbox" value="唱歌" v-model="hobby" />唱歌
        <input type="checkbox" value="跳舞" v-model="hobby" />跳舞
        <input type="checkbox" value="敲代码" v-model="hobby" />敲代码
        你的户籍地址
        <select v-model="city">
          <option value="保定">保定</option>
          <option value="北京">北京</option>
          <option value="上海">上海</option>
        </select>
        你的想法是?
        <textarea v-model="ideas" cols="30" rows="10"></textarea>
        <input type="button" @click="handle" />
      </form>
    </div>
    <script>
      let vue = new Vue({
        el: "#app",
        data: {
          name: "",
          sex: "",
          hobby: [],
          city: [],
          ideas: ""
        },
        methods: {
          handle: function() {
            console.log(this.name);
            console.log(this.sex);
            console.log(this.hobby);
            console.log(this.city);
            console.log(this.ideas);
          }
        }
      });
    </script>

2.表单修饰符

  1. .trim是去掉前后的空格
  2. .lazy是失去焦点以后才会触发
  3. .number是输入的是字符串,会自动转换成数字
 <div id="app">
      <input type="text" v-model.trim="text" />
      <input type="text" v-model.lazy="text" />
      <div>{{ text }}</div>
      <button @click="handle">测试</button>
    </div>
    <script>
      let vue = new Vue({
        el: "#app",
        data: {
          text: ""
        },
        methods: {
          handle: function() {
            console.log(this.text.length);
          }
        }
      });
    </script>

二、计算属性

1.为什么需要计算属性

有的时候我们会在模板语法中做一些相对复杂些的逻辑,如果用计算属性会比较简单。 比如我们提供的数据是字符串hello,但是我们显示的时候需要显示Hello

<body>
    <div id="app">
      <div>{{ msg }}</div>
      <div>{{ handle }}</div>
      <div>{{ handle }}</div>
      <div>{{ handle }}</div>
    </div>
  </body>

  <script>
    var vue = new Vue({
      el: "#app",
      data: {
        msg: "hello"
      },
      methods: {
        change: function() {
          console.log("计算方法");
          return this.msg.slice(0, 1).toUpperCase() + this.msg.slice(1);
        }
      },
      computed: {
        handle: function() {
          console.log("计算属性");
          return this.msg.slice(0, 1).toUpperCase() + this.msg.slice(1);
        }
      }
    });
  </script>

2.计算属性特点

计算属性和方法的区别

  1. 方法调用的时候需要用小括号,计算属性不需要
  2. 计算属性有缓存,调用多次,还是从缓存中读取,方法调用1次执行1次。

三、侦听器

1.监听器用法

侦听器一般用于执行异步操作或者比较消耗性能的时候,主要是用于监听data中的数据变化。

<div id="app">
      <input type="text" v-model="xing" />
      <input type="text" v-model="ming" />
      <div>{{ fullName }}</div>
    </div>
    <script>
      let vue = new Vue({
        el: "#app",
        data: {
          xing: "",
          ming: "",
          fullName: ""
        },
        methods: {},
        computed: {},
        watch: {
          xing: function(val) {
            this.fullName = val + this.ming;
          },
          ming: function(val) {
            this.fullName = this.xing + val;
          }
        }
      });
    </script>

2. 案例练习

<div id="app">
      <input type="text" v-model.lazy="name" />
      <p>{{ msg }}</p>
    </div>
    <script>
      let vue = new Vue({
        el: "#app",
        data: {
          name: "",
          msg: ""
        },
        methods: {
          checkName: function(name) {
            let that = this;
            setTimeout(() => {
              if (name == "admin") {
                that.msg = "你注册的账号已存在,请更换一下";
              } else {
                that.msg = "请输入你注册的账号";
              }
            }, 1000);
          }
        },
        watch: {
          name: function(val) {
            this.checkName(val);
          }
        }
      });
    </script>

四、过滤器

1.简介

vue中的过滤器一般用于日期格式化或者把字符串比如大写变小写等等格式处理

字符串大写案例

<div id="app">
      <input type="text" v-model="msg" />
      <p>{{ msg | upper }}</p>
    </div>
    <script>
      Vue.filter("upper", function(val) {
        return val.slice(0, 1).toUpperCase() + val.slice(1);
      });
      let vue = new Vue({
        el: "#app",
        data: {
          msg: ""
        },
        methods: {},
        watch: {},
        filters: {
          upper: function(val) {
            return val.slice(0, 1).toUpperCase() + val.slice(1);
          }
        }
      });
    </script>

2.总结

vue中的过滤器有全局过滤器和局部过滤器两种,局部的只能在本组件中起作用,全局的在整个项目中起作用。 全局过滤器语法:

 Vue.filter("过滤器名字", function(val) {
   处理逻辑
 });

局部过滤器语法:

filters: {
   过滤器名称: function(val) {
           处理逻辑
    }
  }

五、vue生命周期

挂载阶段:主要是初始化数据用的

  1. beforeCreate
  2. created
  3. beforeMount
  4. mounted

更新阶段:元素或者组件的变更

  1. beforeUpdate
  2. updated

销毁阶段:

  1. beforeDestroy
  2. destroyed
### Vue.js 基础语法教程 Vue.js 是一种用于构建用户界面的渐进式框架,其核心库专注于视图层,并允许与其他库或项目集成。以下是关于 Vue.js 基础语法的一些重要知识点: #### 1. 模板语法 Vue 使用基于 HTML 的模板语法,使开发者能够在 DOM 上声明式的绑定数据[^1]。这种语法使得 HTML 和 JavaScript 能够无缝协作。 ```html <div id="app"> {{ message }} </div> <script> var app = new Vue({ el: '#app', data: { message: 'Hello, Vue!' } }); </script> ``` 上述代码展示了如何通过 `{{ }}` 插值表达式来显示变量的内容[^2]。 #### 2. 数据绑定 Vue 提供了双向数据绑定的功能,这意味着当模型发生变化时,视图会自动更新;反之亦然。这可以通过 `v-model` 指令实现[^3]。 ```html <input v-model="message" placeholder="编辑此输入框"> <p>消息是: {{ message }}</p> ``` 在此示例中,每当用户更改 `<input>` 输入框中的内容时,页面上的 `{{ message }}` 部分也会实时更新[^4]。 #### 3. 方法调用 在 Vue 实例的方法中,`this` 关键字指向当前 Vue 实例本身,因此可以直接访问实例的数据和其他属性。 ```javascript new Vue({ el: '#example', data: { name: 'Vue.js' }, methods: { greet: function () { alert('你好,' + this.name); } } }); <!-- 触发方法 --> <button v-on:click="greet">打招呼</button> ``` 这里定义了一个名为 `greet` 的方法,在按钮点击事件触发时执行该函数。 #### 4. 条件渲染与列表渲染 条件渲染可通过 `v-if` 或者 `v-show` 指令完成,而循环渲染则利用 `v-for` 指令来遍历数组或者对象集合。 ```html <ul id="todo-list"> <li v-for="(todo, index) in todos" :key="index">{{ todo.text }}</li> </ul> <script> var example = new Vue({ el: '#todo-list', data: { todos: [ { text: '学习 Vue.js' }, { text: '编写组件' } ] } }); </script> ``` 这段代码片段演示了如何使用 `v-for` 渲染一个待办事项列表。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值