vue笔记(一):部署

文档

安装

1、安装nodejs(链接),18.0以上版本。

2、在想要创建项目的目录下执行命令

npm create vue@latest

按提示创建项目,其中vue router是实现路由功能,pinia实现组件之间共享数据。如果项目需要两个功能建议选择yes。

3、

cd <your-project-name>
npm install
npm run dev

启动项目访问所给链接即可。

安装bootstrap

如果创建项目时,部分功能没有选择,之后可手动加入,以bootstrap为例。

项目目录下执行:

npm install bootstrap

在main.js中引入:

//import './assets/main.css'
import 'bootstrap/dist/css/bootstrap.css'
import 'bootstrap/dist/js/bootstrap'import { createApp } from 'vue'
import { createPinia } from 'pinia'import App from './App.vue'
import router from './router'const app = createApp(App)app.use(createPinia())
app.use(router)app.mount('#app')

pinia和router也像这样引入,如果自定义样式记得删除man.css样式,App.vue中的样式不需要也可以删除。

vue文件结构

创建/src/components/NavBar.vue:

<script setup>
</script><template>
<nav class="navbar navbar-expand-lg bg-body-tertiary"><div class="container-fluid"><a class="navbar-brand" href="#">Navbar</a><button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNavAltMarkup" aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation"><span class="navbar-toggler-icon"></span></button><div class="collapse navbar-collapse" id="navbarNavAltMarkup"><div class="navbar-nav"><a class="nav-link active" aria-current="page" href="#">Home</a><a class="nav-link" href="#">Features</a><a class="nav-link" href="#">Pricing</a><a class="nav-link disabled">Disabled</a></div></div></div>
</nav>
</template><style scoped>
</style>

分为三部分script(js)、template(html)和style(css)。script的setup可以帮用户完成很多东西,也可以不写然后手动设置,详细请看文档。style的scoped是为了让不同vue组件间css样式名称不产生冲突。

在App.vue中引入:

<script setup>
import NavBar from './components/NavBar.vue'
</script><template><NavBarVue /><RouterView />
</template><style scoped></style>

RouterView是每个路由对应的视图。

基础知识

 template获取script变量

创建组件/scr/components/TestSon.vue:

<script setup>const msg = "hello world";
</script><template><span>{{ msg }}</span>
</template>

script中定义变量,template使用{{}}进行获取。

接受父组件参数

修改TestSon.vue:

<script setup>const pros = defineProps({msg: {type: String,required: true,}})
</script><template><span>{{ pros.msg }}</span>
</template>

使用defineProps定义组件接受的参数。 

创建组件/scr/components/TestParent.vue:

<script setup>
import TestSon from './TestSon.vue';
</script><template><TestSon msg="123" />
</template>

<TestSon />是<TestSon></TestSon>的缩写,父组件直接以属性的方式传递参数。

向组件中传递模板

编写组件HomeContent.vue:

<script setup>import ContentBase from './ContentBase.vue';
</script>
<template><ContentBase><h1>title</h1><p>I have a dream...</p></ContentBase>
</template>

我们希望有一个类似容器的组件contentbase,容纳当前编写的模板内容。

ContentBase:

<template><div class="container"><div class="card"><slot /></div></div>
</template>

使用slot槽来接受内容,夹在<ContentBase>之间的内容会替换<slot>的位置。

属性绑定

上述例子中父组件传递的参数msg是固定string,我们也可以通过v-bind动态的绑定:

<script setup>
import TestSon from './TestSon.vue';const msg = "123";
</script><template><TestSon v-bind:msg="msg" />
</template>

也可以简写为:

<TestSon :msg="msg" />

条件渲染

<script setup>const flag = true;
</script><template><div v-if="flag">真的</div><div v-else>假的</div>
</template>

列表渲染

<script setup>const list = ["alice", "bob"];
</script><template><div v-for="item in list" :key="item">{{ item }}</div>
</template>

需要绑定key,要求每个样例key不同。 

事件处理

<script setup>
function say(msg){alert(msg);
}
</script><template><button v-on:click="say('hello')">Say hello</button>
</template>

可简写:

<button @click="say('hello')">Say hello</button>

输入绑定

<script setup>
import { ref } from "vue";const message = ref();
</script><template><p>Message is: {{ message }}</p><input v-model="message" placeholder="edit me" />
</template>

如果需要在script中使用message的值,需要使用message.value来访问。ref用来声明响应式状态,对于一些复杂类型如object,可以使用reactive代替ref。

访问DOM

<script setup>
import { ref, onMounted } from 'vue'// 声明一个 ref 来存放该元素的引用
// 必须和模板里的 ref 同名
const input = ref(null)onMounted(() => {input.value.focus()
})
</script><template><input ref="input" />
</template>

onMounted会在组件加载完之后调用,只会执行一次,input.value是组件实例。

子组件向父组件抛出事件

父组件TestParent

<script setup>
import TestSon from './TestSon.vue';const say = () => {alert("hi");
};
</script><template><TestSon @parent_event="say" />
</template>

子组件TestSon

<script setup>const emit = defineEmits(["parent_event"]);emit('parent_event');
</script><template></template>

也可通过$emit直接抛出

<script setup></script><template><button @click="$emit('parent_event')">emit</button>
</template>

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

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

相关文章

python-自动化篇-运维-监控-简单实例-道出如何使⽤Python进⾏网络监控?

如何使⽤Python进⾏⽹络监控&#xff1f; 使⽤Python进⾏⽹络监控可以帮助实时监视⽹络设备、流量和服务的状态&#xff0c;以便及时识别和解决问题。 以下是⼀般步骤&#xff0c;说明如何使⽤Python进⾏⽹络监控&#xff1a; 选择监控⼯具和库&#xff1a;选择适合⽹络监控需…

蓝桥杯省赛无忧 课件49 DFS-剪枝

01 数字王国之军训排队 02 特殊的三角形 03 特殊的多边形

优雅的python(二)

&#x1f308;个人主页&#xff1a;小田爱学编程 &#x1f525; 系列专栏&#xff1a;c语言从基础到进阶 &#x1f3c6;&#x1f3c6;关注博主&#xff0c;随时获取更多关于c语言的优质内容&#xff01;&#x1f3c6;&#x1f3c6; &#x1f600;欢迎来到小田代码世界~ &#x…

【docker】linux系统docker的安装及使用

一、docker应用的安装 1.1 安装方式 Docker的自动化安装&#xff0c;即使用提供的一键安装的脚本&#xff0c;进行安装。 官方的一键安装方式&#xff1a;curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 国内 daocloud一键安装命令&#xff1a;curl -s…

二刷代码随想录|Java版|回溯算法1|回溯基础理论+组合问题

理论 写链表之类的真的很痛苦&#xff0c;赶紧跳到回溯&#xff01;这次我想结合算法设计这本书&#xff0c;把java版写出来。放在第三部分吧。希望能够在研一完成这项工作&#xff01; 从一刷总结以下的几个要点&#xff1a; 回溯方法模板性非常强&#xff01;&#xff01;可…

企业虚拟机服务器中了lockbit3.0勒索病毒怎么办,lockbit3.0勒索病毒解密处理流程

对于企业来说&#xff0c;企业的数据是企业的核心命脉&#xff0c;关乎着企业的生产与运营的所有工作。随着网络技术的不断发展&#xff0c;网络安全威胁也在不断增加。近期&#xff0c;云天数据恢复中心接到了很多企业的求助&#xff0c;企业的虚拟机服务器遭到了lockbit3.0勒…

Unity MonoBehaviour 生成dll

dllllllllllllll&#x1f953; &#x1f959;vs创建类库项目&#x1f9c0;添加UnityEngine、UnityEditor引用&#x1f355;添加MonoBehaviour类&#x1f9aa;设置dll生成路径&#x1f37f;生成dll&#x1f354;使用dll中的Mono类 &#x1f959;vs创建类库项目 &#x1f9c0;添加…

Nginx进阶篇【五】

Nginx进阶篇【五】 八、Nginx实现服务器端集群搭建8.1.Nginx与Tomcat部署8.1.1.环境准备(Tomcat)8.1.1.1.浏览器访问:8.1.1.2.获取动态资源的链接地址:8.1.1.3.在Centos上准备一个Tomcat作为后台web服务器8.1.1.4.准备一个web项目&#xff0c;将其打包为war8.1.1.5.启动tomcat进…

基于GPT3.5逆向 和 本地Bert-Vits2-2.3 的语音智能助手

文章目录 一、效果演示二、操作步骤三、架构解析 一、效果演示 各位读者你们好&#xff0c;我最近在研究一个语音助手的项目&#xff0c;是基于GPT3.5网页版的逆向和本地BertVits2-2.3 文字转语音&#xff0c;能实现的事情感觉还挺多&#xff0c;目前实现【无需翻墙&#xff0…

ubuntu20.04 安装ROS2 记录

主要参考B站古月居的ROS2入门21讲 和 以下链接&#xff08;基本和视频上一致&#xff09; ubuntu20.04安装ROS2 详细教程_ubuntu20.04 ros2-CSDN博客 但是中间有些需要注意的地方&#xff0c; 1&#xff0c;添加源 步骤中提到 sudo curl -sSL https://raw.githubuserconten…

LaTeX基础使用【系列四】

&#x1f308;个人主页&#xff1a;godspeed_lucip &#x1f525; 系列专栏&#xff1a;LaTeX基础使用 &#x1f984;1 LaTeX的多行数学公式&#x1f420;1.1 导入包&#x1f420;1.2 gather环境&#xff1a;多行公式&#x1f420;1.3 gather\* &#xff1a;无编号公式&#x1…

Codeforces Round 921 (Div. 2)

A. We Got Everything Covered! 题意&#xff1a;有任意由前k个字母组成的长度为n的字符串s1&#xff0c;你需要构建一个字符串s2&#xff0c;使s1恒为s2的子串&#xff08;注意是子串&#xff0c;不是连续子串&#xff09; 分析&#xff1a;我们可以构造n组字符串&#xff0c…

深入Pyecharts:桑基图绘制与炫酷效果实战【第38篇—python:桑基图】

文章目录 深入Pyecharts&#xff1a;桑基图绘制与炫酷效果实战桑基图简介安装 Pyecharts简单桑基图的绘制自定义桑基图的炫酷效果高级样式定制 多组数据桑基图的展示动态桑基图的绘制结合真实数据的桑基图案例导出和分享进阶应用&#xff1a;桑基图与其他图表的组合总结 深入Py…

Ps:渐变编辑器

渐变编辑器 Gradient Editor可用于创建和编辑自定义渐变&#xff0c;它提供了详细的控制选项&#xff0c;能够精确地调整渐变的颜色、样式和效果。 提示&#xff1a; 拖动边框或边角可缩放渐变编辑器窗口。 预设 Presets 提供了大量的渐变预设。还可通过右侧按钮新建 New、导入…

python在线聊天室(带聊天保存)

python Socket在线聊天室(带聊天保存) 需求功能 1.聊天信息保存功能(服务端会把信息保存到一个txt里面) 2.使用pyqt5框架作为一个可视化界面 3.具备一个服务端和多个客户端的功能 4.具备离线加入黑名单(离线踢出) 5.具备在线加入黑名单(在线加入黑名单被踢出) 6.具备群聊功能…

什么是网络?

你是一台电脑&#xff0c;你的名字叫 A 很久很久之前&#xff0c;你不与任何其他电脑相连接&#xff0c;孤苦伶仃。 直到有一天&#xff0c;你希望与另一台电脑 B 建立通信&#xff0c;于是你们各开了一个网口&#xff0c;用一根网线连接了起来。 用一根网线连接起来怎么就能&…

【大数据】Flink 架构(一):系统架构

Flink 架构&#xff08;一&#xff09;&#xff1a;系统架构 1.Flink 组件1.1 JobManager1.2 ResourceManager1.3 TaskManager1.4 Dispatcher 2.应用部署2.1 框架模式2.2 库模式 3.任务执行4.高可用设置4.1 TaskManager 故障4.2 JobManager 故障 Flink 是一个用于状态化并行流处…

第九篇【传奇开心果系列】beeware的toga开发移动应用示例:人口普查手机应用

传奇开心果博文系列 系列博文目录beeware的toga开发移动应用示例系列博文目录一、项目目标二、安装依赖三、实现应用雏形示例代码四、扩展功能和组件的考量五、添加更多输入字段示例代码六、添加验证功能示例代码七、添加数据存储功能示例代码八、添加数据展示功能示例代码九、…

JavaWeb,Vue的学习(上)

概述 Vue的两个核心功能 声明式渲染&#xff1a;Vue 基于标准 HTML 拓展了一套模板语法&#xff0c;使得我们可以声明式地描述最终输出的 HTML 和 JavaScript 状态之间的关系。响应性&#xff1a;Vue 会自动跟踪 JavaScript 状态并在其发生变化时响应式地更新 DOM ViteVue3项目…

Image Enhancement Guided Object Detection in Visually Degraded Scenes

Abstract 目标检测准确率在视觉退化场景下降严重。一个普遍的解决方法就是对退化图像进行增强然后再执行目标检测。但是&#xff0c;这是一种次优的方案&#xff0c;而且未必对目标检测的准确率有提升&#xff0c;因为图像增强和目标检测两个任务的不同。为了解决这个问题&…