前端基础(Vue的模块化开发)

这篇具有很好参考价值的文章主要介绍了前端基础(Vue的模块化开发)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 前言:前面学习了前端HTML、CSS样式、JavaScript以及Vue框架的简单适用,接下来运用前端模块化编程的思想,继续学习Vue框架,完成自己项目项目的搭建。

目录

响应式基础 ref reactive

学习成果展示

Vue项目搭建

搭建自己的vue项目

总结 


响应式基础 ref reactive

关于ref和reactive,官方解释如下,另外一篇博客写得也很清楚

响应式基础 | Vue.js (vuejs.org)

谈谈Vue3中的ref和reactive_vue reactive_七公子77的博客-CSDN博客

学习成果展示

不用vue框架写一个table

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>测试用例管理平台</title>
    <script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
</head>

<body>
    <div calss="table" style="
    display: inline-block">
        <h2>测试用例</h2>
        <button class="add-case-button" @click="isEdit=true">
            新增用例
        </button>
        <table border="2">
            <col style="width: 100px; overflow: hidden; text-overflow: ellipsis" />
            <col style="width: 100px" />
            <col style="width: 100px" />
            <col style="width: 100px" />
            <col style="width: 100px" />
            <tr>
                <th>用例名</th>
                <th>步骤名</th>
                <th>关键字</th>
                <th>参数1</th>
                <th>参数2</th>
                <th>操作</th>
            </tr>
            <tr>
                <td>参数正确登录成功</td>
                <td>输入正确的参数登录成功</td>
                <td>用户名 密码</td>
                <td>用户名</td>
                <td>密码</td>
                <td><button>删除</button></td>
            </tr>
            <tr>
                <td>参数错误登录失败</td>
                <td>输入错误的参数登录失败</td>
                <td>用户名 密码</td>
                <td>用户名</td>
                <td>密码</td>
                <td><button>删除</button></td>
            </tr>
            <tr>
                <td>参数为空登录失败</td>
                <td>输入的参数为空登录失败</td>
                <td>用户名 密码</td>
                <td>用户名</td>
                <td>密码</td>
                <td><button>删除</button></td>
            </tr>
            </col>
        </table>
    </div>
</body>

</html>

前端基础(Vue的模块化开发),前端技术,前端

上面的实现方式用到了很多个th、td标签,维护很麻烦,那有没有更好的解决方法?

如何用vue框架实现?

用v-for,遍历数组中的元素,进行列表的渲染。

关键两行代码:

取列表的表头,表头名称前加上编号,编号从1开始

<th v-for="(Name,key,index) in tableName " :key="key">{{index+1}}{{Name}}</th>

取列表里具体的内容

<tr v-for="testCase in testCases" >

如果要修改表头、列表里内容,不需要在标签里一个一个改,只需要去维护tableName、testCases里的值即可。是不是很省劲!

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>测试用例管理平台</title>
    <script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
</head>

<body>
    <div id="test">
        <div calss="table" style="
    display: inline-block">
            <h2>测试用例</h2>
            <table border="2">
                <col style="width: 100px; overflow: hidden; text-overflow: ellipsis" />
                <col style="width: 100px" />
                <col style="width: 100px" />
                <col style="width: 100px" />
                <col style="width: 100px" />
                <thead>
                    <tr>
                        <th v-for="(Name,key,index) in tableName " :key="key">{{index+1}}{{Name}}</th>
                    </tr>
                </thead>
                <tbody>
                    <tr v-for="testCase in testCases">
                        <td>{{testCase.caseName}}</td>
                        <td>{{testCase.stepName}}</td>
                        <td>{{testCase.keywords}}</td>
                        <td>{{testCase.param1}}</td>
                        <td>{{testCase.param2}}</td>
                        <td>{{testCase.opration}}</td>
                    </tr>
                </tbody>
            </table>
        </div>
    </div>
    <script>
        const { createApp, computed, ref, reactive } = Vue;
        const = MRJJ{
            setup() {
                let tableName = reactive({
                    "caseName": "用例名",
                    "stepName": "步骤名",
                    "keywords": "关键字",
                    "param1": "参数一",
                    "param2": "参数二",
                    "opration": "操作",
                })

                let testCases = ref([
                    {
                        "id": 1,
                        "caseName": "参数正确登录成功",
                        "stepName": "登录成功",
                        "keywords": "用户名",
                        "param1": "用户名",
                        "param2": "密码",
                        "opration": "删除"
                    },
                    {
                        "id": 2,
                        "caseName": "参数错误登录失败",
                        "stepName": "登录失败",
                        "keywords": "用户名",
                        "param1": "用户名",
                        "param2": "密码",
                        "opration": "删除"
                    },
                    {
                        "id": 3,
                        "caseName": "参数为空登录失败",
                        "stepName": "登录成功",
                        "keywords": "用户名",
                        "param1": "用户名",
                        "param2": "密码",
                        "opration": "删除"
                    },
                ])
                return { tableName, testCases }
            }
        };
        createApp(MRJJ).mount('#test');
    </script>
</body>

</html>

可以看到td标签里的内容自动取出来了。 

前端基础(Vue的模块化开发),前端技术,前端

踩坑记录:

createApp(MRJJ).mount('#test');

id为test这个div标签里的内容,才能引用MRJJ里面的方法。

结合前面的内容,最终写出来的页面!

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>测试用例管理平台</title>
    <script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
</head>
<header id="title">
    欢迎来到MRJJ_9的自动化测试平台
</header>
<body>
    <div class="learn-website">
        <h3>前端学习网站</h3>
        <a class="biglink" href="https://www.w3school.com.cn/html/index.asp">w3school.com</a>
        </br>
        <a href="https://developer.mozilla.org/zh-CN/docs/Web/HTML">MDN 社区</a>
        </br>
        <a class="test01" href="https://www.csdn.net">CSDN社区</a>
        </br>
        <h3>本人博客</h3>
        <a href="https://blog.csdn.net/mrjj_9/category_12393537.html">前端学习博客</a>
    </div>
    <div id="test">
        <div class="form" style="
        display: inline-block">
                <h2 id="form-title">添加测试用例</h2>
                <!-- <button class="close-button" @click="isEdit=false">关闭</button> -->
                <label>
                    用例名:
                    <input type="text" placeholder="输入测试用例名称" name="caseName" v-model="newCase.caseName">
                </label>
                <label>步骤名:
                    <input type="text" placeholder="输入测试步骤名称" name="stepName" v-model="newCase.stepName">
                </label>
                <div>请选择用例类型:
                    <label>
                        <input type="radio" name="type" value="api">接口自动化
                    </label>
                    <label>
                        <input type="radio" name="type" value="ui">UI自动化
                        <br>
                    </label>
                </div>
                <label for="keywords">
                    关键字:
                </label>
                <select name="keywords" v-model="newCase.keywords">
                    <option value="openBrowser">打开浏览器</option>
                    <option value="params">传入必传参数</option>
                </select>
                </br>
                <lable>参数一:<input type="text" name="param1" v-model="newCase.param1"></lable>
                <lable>参数二:<input type="text" name="param2" v-model="newCase.param2"></lable>
            </br>
                <button id="addSubmit" type="button" @click="addCase">提交新增</button>
            </form>
        </div>
        <div calss="table" style="
    display: inline-block">
            <h2>测试用例</h2>
            <table border="2">
                <col style="width: 100px; overflow: hidden; text-overflow: ellipsis" />
                <col style="width: 100px" />
                <col style="width: 100px" />
                <col style="width: 100px" />
                <col style="width: 100px" />
                <thead>
                    <tr>
                        <th v-for="(Name,key,index) in tableName " :key="key">{{index+1}}{{Name}}</th>
                    </tr>
                </thead>
                <tbody>
                    <tr v-for="testCase in testCases">
                        <td>{{testCase.caseName}}</td>
                        <td>{{testCase.stepName}}</td>
                        <td>{{testCase.keywords}}</td>
                        <td>{{testCase.param1}}</td>
                        <td>{{testCase.param2}}</td>
                        <td>
                            <button id="delete" @click="deleteCase(testCase)">删除</button>
                        </td>
                    </tr>
                </tbody>
            </table>
        </div>
    </div>
    <script>
        const { createApp, computed, ref, reactive } = Vue;
        const MRJJ = {
            setup() {
                let tableName = reactive({
                    "caseName": "用例名",
                    "stepName": "步骤名",
                    "keywords": "关键字",
                    "param1": "参数一",
                    "param2": "参数二",
                    "opration": "操作",
                })

                let testCases = ref([
                    {
                        "id": 1,
                        "caseName": "参数正确登录成功",
                        "stepName": "登录成功",
                        "keywords": "用户名",
                        "param1": "用户名",
                        "param2": "密码",
                        "opration": "删除"
                    },
                    {
                        "id": 2,
                        "caseName": "参数错误登录失败",
                        "stepName": "登录失败",
                        "keywords": "用户名",
                        "param1": "用户名",
                        "param2": "密码",
                        "opration": "删除"
                    },
                    {
                        "id": 3,
                        "caseName": "参数为空登录失败",
                        "stepName": "登录成功",
                        "keywords": "用户名",
                        "param1": "用户名",
                        "param2": "密码",
                        "opration": "删除"
                    },
                ])
                let newCase = reactive({
                    "caseName": "用例名",
                    "stepName": "步骤名",
                    "keywords": "关键字",
                    "param1": "参数一",
                    "param2": "参数二",
                })
                let isCaseName = ref(true);

                function deleteCase(testCase) {
                    console.log("要删除的用例是:", testCase)
                    testCases.value.splice(testCases.value.indexOf(testCase), 1);
                }

                function addCase() {
                    let lastId = testCases.value[testCases.value.length - 1].id;
                    console.log(lastId);
                    let addCase = { ...newCase };
                    addCase.id = lastId + 1;
                    testCases.value.push(addCase);
                    isEdit.value = false;
                }

                return { tableName, testCases, newCase, addCase, deleteCase}
            }
        };
        createApp(MRJJ).mount('#test');
    </script>
    <link rel="stylesheet" href="case.css">
    <style>

        body {
            background: aliceblue;
            background-image: url("./picture.jpg");
            background-size: 60vw;
            background-position: 10% 10%;
        }
    </style>
</body>
</html>

前端基础(Vue的模块化开发),前端技术,前端

Vue项目搭建

npm init vue

前端基础(Vue的模块化开发),前端技术,前端

创建的项目结构, 在本地将项目启动起来,进入工程目录,打开终端,输入命令:npm run dev 

前端基础(Vue的模块化开发),前端技术,前端 本地启动完成的项目

前端基础(Vue的模块化开发),前端技术,前端

vue插件安装必备,推荐看下面的这篇博客

开发vue3必备的几个vscode插件,你用上了吗?-腾讯云开发者社区-腾讯云 (tencent.com)

vs code切换主题,File->preferences-Theme

前端基础(Vue的模块化开发),前端技术,前端

搭建自己的vue项目

搭建过程遇到一些坑,特开了一个博客记录

启动Vue项目踩坑记录_MRJJ_9的博客-CSDN博客

使用组件化的方式,搭建的Vue项目大功告成了!!! 

前端基础(Vue的模块化开发),前端技术,前端

前端基础(Vue的模块化开发),前端技术,前端  

总结 

从前面的基础学习,一路走到Vue框架这里,可以看到组件化编程确实很省劲,这也是实际项目中大都要用到vue3框架的原因,到这里前端方面的基础自己再好好学习一下,为后面自己做个网站打一个坚实的基础!!!前端还挺有意思的!文章来源地址https://www.toymoban.com/news/detail-659956.html

到了这里,关于前端基础(Vue的模块化开发)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Vue的模块化开发初探

    Vue是一个渐进式JavaScript框架,可以按需引入部分功能,而不必全量引入整个框架。 2.1 下载必须模块 在浏览器输入: https://unpkg.com/vue@3/dist/vue.esm-browser.js ,右键另存为,保存到demo.html文件同级目录下。 2.2 安装Live Server插件 在VSCode插件市场搜索Live Server并安装,如下图: 2.

    2024年04月10日
    浏览(60)
  • 前端工程化实战:React 模块化开发、性能优化和组件化实践

    前端工程化实战是指通过组织工作流程、使用工具和技术来提高前端开发效率和质量的一种方法。常见的前端工程化实践包括模块化开发、自动化构建、代码检查和测试、性能优化等。下面将简要介绍模块化开发、性能优化和组件化实践。 模块化开发 在 React 中实现模块化开

    2023年04月10日
    浏览(71)
  • 如何在Vue中进行单元测试?什么是Vue的模块化开发?

    在Vue中进行单元测试可以提高代码的可维护性和可读性,同时也能够帮助开发者更快地找到代码中的问题和潜在的错误。下面是一些在Vue中进行单元测试的步骤: 安装单元测试工具 首先需要安装一个单元测试工具,例如Jest或Mocha。可以使用npm或yarn进行安装。 创建测试文件

    2024年02月12日
    浏览(41)
  • 【Go 基础篇】Go语言包详解:模块化开发与代码复用

    在Go语言中, 包(Package) 是一种用于组织代码的机制,用于将相关的函数、类型和变量等组织在一起,以便于模块化开发和代码复用。包的使用能够使程序结构更加清晰、可维护性更高,同时也是Go语言强调的一项重要特性。本篇博客将深入探讨Go语言中包的相关知识,包括

    2024年02月11日
    浏览(47)
  • 前端10年进化 Node.js、模块化、CommonJS、AMD、CMD、Webpack、Vue-cli、Electron-vue

    模块化的概念在软件开发领域已经存在很长时间,但在 JavaScript 中的模块化发展相对较晚。以下是对您提出的问题的回答: 提出时间:JavaScript 中的模块化概念相对较早地提出于 CommonJS 规范。CommonJS 是一种 JavaScript 模块化规范,最早在 2009 年由 Ryan Dahl 和其他社区成

    2024年02月11日
    浏览(79)
  • 前端模块化

      随着前端应用的日益复杂,我们的项目代码已经逐渐膨胀到了不得不花大量时间去管理的程度了。而模块化就是一种最主流的代码组织方式,它通过把复杂的代码按照功能的不同划分为不同的模块单独维护,从而提高开发效率、降低维护成本。模块化可以使你能够更容易地

    2024年02月08日
    浏览(66)
  • 前端进阶之——模块化

            在做项目的时候越来越发现模块化的重要性,做好模块化开发不仅给后期的维护带来不少好处而且大大提升项目开发效率,接下来整理一下模块化相关知识吧。 封装方法、提高代码的复用性、可维护性和可读性 隔离作用域,避免污染全局作用域 避免变量冲突 立即执

    2024年02月10日
    浏览(105)
  • 【前端模块化】JS模块化思想以及相关规范(CommonJS、ES module)

    1.模块化概念 随着前端应用日趋复杂,项目代码也大量膨胀,模块化就是一种最主流的代码组织方式, 一个模块就是一个实现特定功能的文件 ,它通过把我们的复杂代码按照功能的不同,划分为不同的模块单独维护的这种方式,去提高我们的开发效率,降低维护成本。要用

    2024年02月01日
    浏览(62)
  • 前端工程化之模块化

    前端模块化是一种标准,不是实现 理解模块化是理解前端工程化的前提 前端模块化是前端项目规模化的必然结果 前端模块化就是将复杂程序根据规范拆分成若干模块,一个模块包括输入和输出。而且模块的内部实现是私有的,它通过对外暴露接口与其他模块通信,而不是直

    2024年02月11日
    浏览(424)
  • 前端面试题---模块化和性能优化

    模块化是一种将程序代码划分为独立、可复用的模块的开发方法。它能够提高代码的可维护性、可复用性和可扩展性,使得代码更易于组织、调试和协作。 常见的模块化方案包括: AMD(Asynchronous Module Definition):AMD是一种异步加载模块的规范,主要用于浏览器环境。它使用

    2024年02月10日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包