工程化Vue使用

news/2024/9/13 11:40:32/文章来源:https://www.cnblogs.com/kohler21/p/18305048

目录
  • 环境准备
  • Vue项目-创建
  • Vue项目开发流程
  • API风格
  • 案例

推荐阅读:

  • VUE-局部使用

环境准备

  • 介绍:create-vue是Vue官方提供的最新的脚手架工具,用于快速生成一个工程化的Vue项目。

  • create-vue提供了如下功能:

    • 统一的目录结构
    • 本地调试
    • 热部署
    • 单元测试
    • 集成打包
  • 依赖环境:NodeJS

Node.js安装:https://www.cnblogs.com/zhouyu2017/p/6485265.html

Vue项目-创建

创建一个工程化的Vue项目,执行命令:npm init vue@latest

执行上述指令,将会安装并执行 create-vue,它是 Vue 官方的项目脚手架工具

  • Project name:------------------》项目名称,默认值:vue-project,可输入想要的项目名称。
  • Add TypeScript? ----------------》是否加入TypeScript组件?默认值:No。
  • Add JSX Support? ---------------》是否加入JSX支持?默认值:No。
  • Add Vue Router ...--------------》是否为单页应用程序开发添加Vue Router路由管理组件?默认值:No。
  • Add Pinia ...-------------------》是否添加Pinia组件来进行状态管理?默认值:No。
  • Add Vitest ...------------------》是否添加Vitest来进行单元测试?默认值:No。
  • Add an End-to-End ...-----------》是否添加端到端测试?默认值No。
  • Add ESLint for code quality? ---》是否添加ESLint来进行代码质量检查?默认值:No。

进入项目目录,执行命令安装当前项目的依赖:npm install

如何解决 npm install 卡在“sill idealTree buildDeps“的问题:https://q.cnblogs.com/q/148802

Vue项目-目录结构

image-20240514200025549

项目启动

执行命令:npm run dev ,就可以启动vue项目了。

Vue项目开发流程

1717483590415.png

1717483749168.png

*.vue是Vue项目中的组件文件,在Vue项目中也称为单文件组件(SFC,Single-File Components)。Vue 的单文件组件会将一个组件的逻辑 (JS),模板 (HTML) 和样式 (CSS) 封装在同一个文件里(*.vue) 。

示例代码(更改的App.vue文件):

<script>
//写数据export default{data(){return{msg:'上海'}}}
</script>
<template><!-- html -->
<!-- <h1>北京</h1> -->
<h1>{{ msg }}</h1>
</template>
<style scoped>
/* 样式 */
h1{color: red;
}
</style>

效果:

1717484239016.png

另一种写法:

<script setup>import { ref } from "vue";//调用ref函数,定义响应式数据const msg = ref('大连')
</script>
<template><!-- html -->
<h1>{{ msg }}</h1>
</template>
<style scoped>
/* 样式 */
h1{color: red;
}
</style>

效果:

1717484433767.png

API风格

Vue的组件有两种不同的风格:组合式API选项式API

选项式API,可以用包含多个选项的对象来描述组件的逻辑,如:data,methods,mounted等。

组合式API

  • setup:是一个标识,告诉Vue需要进行一些处理,让我们可以更简洁的使用组合式API。
  • ref():接收一个内部值,返回一个响应式的ref对象,此对象只有一个指向内部值的属性 value。
  • onMounted():在组合式API中的钩子方法,注册一个回调函数,在组件挂载完成后执行。
1717484593253.png

示例:

App.vue

<template>
<Apivue></Apivue>
</template>
<script setup>//导入Api.vue文件import Apivue from'./Api.vue'
</script>

Api.vue

<template><!-- 写html元素 --><button @click="increment">count:{{ count }}</button>
</template>
<script setup>import {ref,onMounted} from 'vue'//声明响应式数据 ref 响应式对象有一个内部的属性valueconst count = ref(0);//在组合式api中,一般需要吧数据定义为响应式数据//声明函数function increment(){count.value++;}//声明钩子函数 onMountedonMounted(()=>{console.log('vue已经挂载完毕了...');});
</script>

案例

使用表格展示所有文章的数据, 并完成条件搜索功能

  • 钩子函数mounted中, 获取所有的文章数据
  • 使用v-for指令,把数据渲染到表格上展示
  • 使用v-model指令完成表单数据的双向绑定
  • 使用v-on指令为搜索按钮绑定单击事件

接口调用的js代码一般会封装到.js文件中, 并且以函数的形式暴露给外部

注意:使用 async…await 同步接收网络请求的结果

示例案例的代码地址:

  • 前端:https://gitee.com/kohler19/kohler19/tree/master/Vue学习/axios案例-vue
  • 后端:https://gitee.com/kohler19/kohler19/tree/master/Vue学习/axios_demo/axios_demo

欢迎关注公众号:愚生浅末。
image

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/744673.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Salesforce业务分析师认证最新考纲,建议收藏!

Salesforce业务分析师认证考试专为具有Salesforce经验的业务分析师而设计的。业务分析师的工作是为了推动业务改进,并与利益相关者合作以了解客户环境中的业务需求和价值。 官方的考试指南指出,备考者需要有2年Salesforce平台经验,2年业务分析师经验,包括成功拥有和交付业务…

推荐2款.NET开源、轻便、实用的Windows桌面启动器

Flow Launcher Flow Launcher是一款.NET开源(MIT License)、免费、功能强大、方便实用的 Windows 文件搜索和应用程序启动器,能够帮助你快速查找文件、启动应用程序和执行系统操作,提高工作效率和操作便利性。并且生态完善,有插件商店,你可以查看完整的插件列表,或通过 …

Nuclei的安装

一、安装基础Golang 通过yum install go 安装的go版本是1.20.14,无法满足nuclei的环境要求, 使用 yum remove go 卸载删除已安装的go语言环境, 通过go 官网下载需要的go版本,https://go.dev/dl/ 下载在/usr/local目录下,cd /usr/local , wget https://go.dev/dl/go1.22.…

asp网站提示数据库连接出错

错误记录: 转移服务器后出现了asp网站数据库连接出错的问题 错误原因:解决方案: 1、检查数据库路径是否写入正确 (因为是转移网站,直接粘贴复制过去的,这项就排除了) 2、c盘\Windows/Temp 给user用户写入权限 3、iis中应用池》高级设置》启用32位应用程序 选择 True本文…

验证码不显示是什么情况

错误记录: 验证码不显示是什么情况错误原因: 可能有以下几种情况1、CMS版本太低,下载修复包解压上传到网站根目录2、先确保php是否开启了 gd 或者 gd2 库;3、登录页面index.php 或者 login.htm页面是否存在bom头部信息;4、php是否开启了缓冲区机制;5、是否删除了文件缓存…

帝国CMS网站导入文件介绍

导入栏目、专题、标题分类缓存文件:/e/data/dbcache/class.php 导入会员组缓存文件:/e/data/dbcache/MemberLevel.php 导入标签函数文件:/e/class/t_functions.php 导入编译标签文件:/e/class/functions.php本文来自博客园,作者:黄文Rex,转载请注明原文链接:https://ww…

Discuz!Database Error (1045)notconnect

出现Discuz!Database Error (1045)notconnect问题是discuz的数据库连接失败,首先可以检查下数据库单独是否可以登陆,如果可以登陆的情况下检查下自己程序文件里面的配置是否正确,如果不能登陆,到主机控制面板数据库管理里面直接点下“修改mysql密码”后再尝试点管理看能否连…

Fatal error: Call to a member function..的解决方法

Fatal error: Call to a member function read() on a non-object in E:\www\include\dialog\select_soft.php on line 82织梦官方帮助中心给出的答案是A:一种可能是发送的SQL语句太长,以致超过了max_allowed_packet的大小,如果是这种原因,你只要修改my.cnf,加大max_allow…

Fatal error: Allowed memory size of …. bytes exhausted (tried to allocate … bytes) in..

错误记录: Fatal error: Allowed memory size of …. bytes exhausted (tried to allocate … bytes) in.. 错误原因: 服务器/空间PHP设置问题 解决方案: PHP对Script记忆体空间限制的缘故。Default 设定为 8MB,而有些以前的 Script,会要求使用超过 8MB 的内存空间,只要加…

易优CMS文章下一篇设置与调用标签

{eyou:prenext get=next} <a href={$field.arcurl} title={$field.title} class=page-link> 下一篇 <span>: {$field.title}</span> </a> {eyou:else /} <a class=page-link>下一篇:没有了</a> {/eyou:prenext}本文来自博客园,作者:黄文…

eyoucms文章列表每隔5行增加样式

参考代码 {eyou:artlist typeid=1 limit=0,10 mod=5} <li {eyou:eq name=mod value=0}class="hover"{/eyou:eq}><a href={$field.arcurl}>{$field.title}</a> </li> {/eyou:artlist} mod=5 即代表每隔5行本文来自博客园,作者:黄文Rex,转载…

易优cms后台验证码总是重复弹出验证码错误问题,无法登陆后台

一般是写入权限问题首先排查空间是否已经满了其次可以清理缓存目录试试。本文来自博客园,作者:黄文Rex,转载请注明原文链接:https://www.cnblogs.com/hwrex/p/18304977