Vue.js3组件的方法

在Vue.js中,可以很方便地将数据使用插值表达式的方式渲染到页面元素中,但是插值表达式的设计初衷是用于简单运算,不应该对差值做过多的操作。当需要对差值做进一步处理时,可以使用Vue.js中的组件方法和计算属性来完成这一操作。另外,操作元素的class列表和内联样式是数据绑定的一个常见需求。Vue.js组件包括方法、计算属性和网页样式的绑定,本文重点介绍Vue.js组件的方法。

3.1 方法选项

在Vue.js 3.x中,组件的方法可以在实例的methods选项中定义。

3.1.1 使用方法

使用方法有两种,一种是使用插值{{}},另一种是使用事件调用。

  1. 使用插值方式

下面通过一个字符串翻转的示例来看一下使用插值的方法。
【例3.1】 使用插值的方法(源代码\ch03\3.1.html)。

在input中通过v-model指令双向绑定message,然后在methods选项中定义reversedMessage方法,让message的内容反转,然后使用插值语法渲染到页面中。

复制代码
<div id="app">
    输入内容:<input type="text" v-model="message"><br/>
    反转内容:{{reversedMessage()}}
</div>
<!--引入Vue文件-->
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<script>
     //创建一个应用程序实例
    const vm= Vue.createApp({
        //该函数返回数据对象
        data(){
          return{  message: ''  }
        },
         //在选项对象的methods属性中定义方法
        methods: {
            reversedMessage:function () {
                return this.message.split('').reverse().join('')
             }
        }
    //在指定的DOM元素上装载应用程序实例的根组件
    }).mount('#app');
</script>

在Chrome浏览器中运行程序,然后在文本框中输入"江碧鸟逾白,山青花欲燃。",可以看到下面会显示反转后的内容"。燃欲花青山,白逾鸟碧江",如图3-1所示。

  1. 使用事件调用

下面通过一个单击页面按钮来增加数值的示例来看一下事件调用。
【例3.2】 事件调用方法(源代码\ch03\3.2.html)。

首先在data()函数中定义num属性,然后在methods中定义add()方法,该方法每次调用num都会自增。在页面中首先使用插值渲染num的值,使用v-on指令绑定click事件,然后在事件中调用add()方法。

复制代码
<div id="app">
    {{num}}
    <p><button v-on:click="add()">增加</button></p>
</div>
<!--引入Vue文件-->
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<script>
     //创建一个应用程序实例
    const vm= Vue.createApp({
        //该函数返回数据对象
        data(){
          return{
            num:1
           }
        },
         //在选项对象的methods属性中定义方法
        methods: {
            add:function(){
                this.num+=1
             }
        }
    //在指定的DOM元素上装载应用程序实例的根组件
    }).mount('#app');
</script>

在Chrome浏览器中运行程序,多次单击"增加"按钮,可以发现每次单击num值自增1,结果如图3-2所示。

3.1.2 传递参数

Vue.js传递参数分为如下两个步骤。

在methods方法中进行声明,例如给【例3.2】中的add方法加上一个参数a,声明格式如下:

add:function(a){}

调用方法时直接传递参数,例如这里传递参数2,在按钮button上直接写:

<button v-on:click="add(2)">增加</button>

下面修改【例3.2】的代码,每次单击"增加"按钮,让它自增2。
【例3.3】 传递参数(源代码\ch03\3.3.html)。

复制代码
<div id="app">
    {{num}}
    <p><button v-on:click="add(2)">增加</button></p>
</div>
<!--引入Vue文件-->
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<script>
    //创建一个应用程序实例
    const vm= Vue.createApp({
        //该函数返回数据对象
        data(){
          return{
              num:1
           }
        },
         //在选项对象的methods属性中定义方法
        methods: {
            add:function(a){
                this.num+=a
             }
        }
    //在指定的DOM元素上装载应用程序实例的根组件
    }).mount('#app');
</script>

在Chrome浏览器中运行程序,单击一次"增加"按钮,可以发现num值自增2,结果如 图3-3所示。

3.1.3 方法之间的调用

在Vue.js中,methods选项中的一个方法可以调用methods中的另一个方法,其语法格式如下:

this.$options.methods.+方法名
【例3.4】 方法之间的调用(源代码\ch03\3.4.html)。

复制代码
<div id="app">
    {{content}}
    {{way2()}}
</div>
<!--引入Vue文件-->
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<script>
    //创建一个应用程序实例
    const vm= Vue.createApp({
        //该函数返回数据对象
        data(){
          return{
              content:"古诗"
           }
        },
         //在选项对象的methods属性中定义方法
        methods: {
            way1:function(){
                alert("芳草碧色,萋萋遍南陌。暖絮乱红,也似知人,春愁无力。");
            },
            way2:function(){
                this.$options.methods.way1();
            }
        }
    //在指定的DOM元素上装载应用程序实例的根组件
    }).mount('#app');
</script>

在Chrome浏览器中运行程序,结果如图3-4所示。

本文节选自《Vue.js 3.x+Element Plus从入门到精通(视频教学版)》,获出版社和作者授权发布。

相关推荐
2501_915918411 小时前
Web 前端可视化开发工具对比 低代码平台、可视化搭建工具、前端可视化编辑器与在线可视化开发环境的实战分析
前端·低代码·ios·小程序·uni-app·编辑器·iphone
程序员的世界你不懂2 小时前
【Flask】测试平台开发,新增说明书编写和展示功能 第二十三篇
java·前端·数据库
索迪迈科技2 小时前
网络请求库——Axios库深度解析
前端·网络·vue.js·北京百思可瑞教育·百思可瑞教育
gnip2 小时前
JavaScript二叉树相关概念
前端
一朵梨花压海棠go2 小时前
html+js实现表格本地筛选
开发语言·javascript·html·ecmascript
attitude.x3 小时前
PyTorch 动态图的灵活性与实用技巧
前端·人工智能·深度学习
β添砖java3 小时前
CSS3核心技术
前端·css·css3
空山新雨(大队长)3 小时前
HTML第八课:HTML4和HTML5的区别
前端·html·html5
猫头虎-前端技术3 小时前
浏览器兼容性问题全解:CSS 前缀、Grid/Flex 布局兼容方案与跨浏览器调试技巧
前端·css·node.js·bootstrap·ecmascript·css3·媒体