Vue基本语法

1. 新建vue页面

在idea中新建一个Vue页面

<template>
//放置HTML页面
</template>

<script>
	//放置script脚本(比如一些方法啥的)
	
	import {
        //导入的方法名,
    } from "../../api/tools/python-script";
    
    export default {
        name: "python-script-management",
        data() {
        //存放变量
        }
        created() {
        //进入该页面时激活这里的方法
        }
        methods:{
        //自定义方法实现
        }
    }
</script>

<style scoped>
</style>

2. el-row和el-col

<el-row>控制的是一行的显示,<el-col>控制的是一列的显示,下列代码中是在一行中嵌入了两列,显示的前端效果如下:
在这里插入图片描述

<div class="search-wrap">
<el-row :gutter="32">
    <el-col :xs="24" :sm="24" :lg="12">
        <div class="search-section">
            <span class="search-label">脚本名称:</span>
            <el-input class="search-item" placeholder="请输入脚本名称(支持模糊搜索)" v-model="searchObj.scriptName"
                      clearable @keyup.enter.native="searchScript"></el-input>
        </div>
    </el-col>
    <el-col :xs="24" :sm="24" :lg="12">
        <div class="search-section">
            <span class="search-label">上传人:</span>
            <el-input class="search-item" placeholder="请输入上传人姓名(支持模糊搜索)" v-model="searchObj.createUserName"
                      clearable @keyup.enter.native="searchScript"></el-input>
        </div>
    </el-col>
</el-row>
</div>

2. 通过scope.row获取表中的一行数据

<el-table>是表格标签,<el-table-column>则控制的是表格中的一行,在<el-table>中data绑定要显示的所有数据,一般是一个List,则List中的每一项将显示为表格中的一行。
在这里插入图片描述

<el-table
   :data="tableList"
   v-loading="loading"
   element-loading-text="正在拼命加载中,请稍候"
   stripe
   fit
   border
   highlight-current-row
   style="width: 100%;font-size: 13px;"
   height="500px"
>
<el-table-column label="脚本名称" align="center">
    <template slot-scope="scope">
        <span>{{ scope.row.scriptName }}</span>
    </template>
</el-table-column>

<el-table-column label="操作" align="center" width="400">
<template slot-scope="scope">
    <el-button type="primary" size="mini" icon="el-icon-edit" @click="scriptEdit(scope.row)">编辑入参
    </el-button>
    <el-button type="primary" size="mini" icon="el-icon-delete" @click="scriptDownload(scope.row.id)">下载
    </el-button>
    <el-button type="primary" size="mini" icon="el-icon-delete" @click="scriptRun(scope.row.id)">运行
    </el-button>
    <el-button type="danger" size="mini" icon="el-icon-delete" @click="scriptDelete(scope.row.id)">删除
    </el-button>
</template>
</el-table-column>

3. 监听键盘响应

通过keyup.enter.native监听键盘中的 Enter 键,如果该键被点击,则触发 searchScript 事件。

<el-input class="search-item" placeholder="请输入上传人姓名(支持模糊搜索)" 
v-model="searchObj.createUserName"
clearable @keyup.enter.native="searchScript"></el-input>

4. loading加载

通过v-loading指令绑定一个Boolean变量即可实现转圈加载,在其他地方通过 this.loading=true/false 可实时控制是否显示加载。(loading变量需要在data()中进行声明。)

下面控制table进行loading

<el-table
    :data="tableList"
    v-loading="loading"
    element-loading-text="正在拼命加载中,请稍候"
    stripe
    fit
    border
    highlight-current-row
    style="width: 100%;font-size: 13px;"
    height="500px"
>

全局loading不是在要loading的地方加,而是在button上加:
在这里插入图片描述

5. 页面跳转

this.$router.push()
描述:跳转到不同的url,这个方法会向history栈添加一个记录,点击后退会返回到上一个页面。

this.$router 相当于一个全局的路由器对象,包含了很多属性和对象(比如 history 对象),任何页面都可以调用其 push(), replace(), go() 等方法。this.$route 表示当前路由对象,每一个路由都会有一个 route 对象,是一个局部的对象,可以获取对应的 name, path, params, query 等属性。

scriptRun(rowId) {
	this.$router.push({path: '/test-tools/script-run-detail', query: {'id': rowId}})
},
//script-run-detail.vue
created() {
   this.getRouterParam();
},
methods: {
   getRouterParam() {
       this.routerParams = this.$route.query.id;
       if (this.routerParams !== '' && this.routerParams !== undefined) {
           this.getScriptDetailInfo(this.routerParams);
       }
    },
}

别忘了在router页面添加路由跳转的路径,这样才能知道跳转到哪个页面

{
    path: '/test-tools/script-run-detail',
    component: () => import('@/views/test-tools/script-run-detail'),
    hidden: true
},

6. 请求的参数

JSON格式的参数都会拼接在请求的后面,成为方法的query参数,而其他参数会变成data参数,
在这里插入图片描述

getScriptList({pageNum: this.pageNum, pageSize: this.pageSize}, this.searchObj).then(response => {
    if(response.success) {
        this.tableList = response.data.records;
        this.total = response.data.total;
        this.loading = false
    }
})
export function getScriptList(query, data) {
    return request(
        '/testTool/pythonScript/getScriptList',
        {
            method: 'post',
            params: query,
            data
        },
        'godzilla'
    )
}

7. 下拉列表

<el-select></el-select>可以实现下拉列表展示,如下面代码所示,选中某个选项后, v-modelsearchObj.businessLine 将自动被赋值为选中选项对应的 value值。<el-option>展示的是下拉框选项,这里的选项通过后台查询存储在变量 this.businessList 中,然后通过 v-for 循环展示;其中 :label 是展示出来的标签, :value 则是每个标签对应的实际值(也是之后赋给v-model的值)。

<el-select class="search-item" v-model="searchObj.businessLine" placeholder="请选择" clearable @change="searchEv">
	<el-option
	        v-for="item in this.businessList"
	        :key="item.businessCode"
	        :label="item.businessName"
	        :value="item.businessCode"
	></el-option>
</el-select>

@change:设定选中选项后触发的方法;
clearable: 可清空选项;
filterable: 列表框可输入筛选。

根据引用和引用提供的信息,可以将Vue基本语法思维导图如下: 1. Vue的基础指令 - 文本插值:使用双大括号{{}}将Vue实例中的数据显示在HTML中。 - 条件渲染:使用v-if和v-else指令根据条件来显示或隐藏元素。 - 循环列表渲染:使用v-for指令循环渲染数组或对象的数据。 2. 路由 - 路由首位:使用Vue Router来进行前端路由管理。 - 路由导航:使用router-link组件进行页面跳转。 - 路由传参:通过路由参数或query参数传递数据。 - 动态路由:根据路由参数的不同来动态加载组件。 3. 生命周期:Vue实例在创建、更新和销毁时触发不同的生命周期钩子函数。 4. Axios语法:使用Axios库进行HTTP请求。 5. 本地存储:使用localStorage或sessionStorage在浏览器中进行数据的本地存储。 根据引用提供的信息,还可以补充一些内容: 6. 计算属性:通过computed属性来计算和返回Vue实例中的响应式数据。 7. Watch监听:通过watch属性来监听Vue实例中数据的变化,并执行相应的操作。 8. class和style:使用v-bind指令绑定class和style属性,实现动态样式的应用。 9. 事件:使用v-on指令绑定事件处理函数,响应用户的交互操作。 10. 表单:使用v-model指令实现表单与数据的双向绑定,包括输入框、多行文本、复选框、单选框和下拉列表等。 请注意,以上只是Vue基本语法的思维导图,具体的语法细节和用法请参考官方文档或相关教程。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [vue(框架 思维导图).xmind](https://download.csdn.net/download/weixin_46174785/12392736)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Vue基本使用(含思维导图)](https://blog.csdn.net/weixin_38644397/article/details/117775995)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值