初识node.js(使用)

文章目录

    • 项目目录介绍和运行流程
      • 1.index.html👇
      • 2.整个项目的核心入口文件其实是`main.js`
      • 3.App.vue
    • 组件化开发 和 根组件
    • 普通组件的注册
      • 1.局部注册
      • 2.全局注册
    • 综合案例

项目目录介绍和运行流程

在这里插入图片描述

1.index.html👇

<!DOCTYPE html>
<html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1.0"><link rel="icon" href="<%= BASE_URL %>favicon.ico"><title><%= htmlWebpackPlugin.options.title %></title></head><body><!-- 兼容:给不支持js的浏览器一个提示 --><noscript><strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><!-- Vue所管理的容器:将来创建结构动态渲染这个容器 --><div id="app"><!-- 工程化开发模式中:这里不在直接编写模板语法 ,而是通过App.vue 提供结构渲染--></div><!-- built files will be auto injected --></body>
</html>

Ctrl + `是切换终端
在这里插入图片描述

打开终端,在里面执行yarn serve,运行项目,然后通过浏览器打开
在这里插入图片描述
在这里插入图片描述

2.整个项目的核心入口文件其实是main.js

//文件核心作用:导入App.vue,基于App.vue创建结构渲染index.html
//1.导入 Vue 核心包
import Vue from 'vue'
//2.导入 App.vue 根组件
import App from './App.vue'console.log(123)//提示:当前处于什么环境(生产环境/开发环境)
Vue.config.productionTip = false//3.Vue实例化,提供render方法 → 基于App.vue创建结构渲染index.html
new Vue({//如果要管理index中的app容器,就像下面这么写el:'#app',//这个 el 和下面的 .$mount('选择器') 作用完全一样,用于指定Vue所管理的容器//render: h => h(App),   //基于App.vue创建结构//这里的 render 写法其实是一个简写//可以写一个完整写法(如下)render: (createElement) => {// 基于App创建元素结构,但创建了结构并没有返回,所以它得不到你创建的结果,//所以前面要加一个returnreturn createElement(App)}//提问:完整写法和之前的有什么不一样?//答:creatElement是形参,它可以改成别的,比如一个h
}).$mount('#app')

3.App.vue

<!-- 本质上就是在基于App.vue来创建结构,最终渲染index.html里面的id=App的盒子 -->
<template><div id="app"><img alt="Vue logo" src="./assets/logo.png"><img alt="Vue logo" src="./assets/logo.png"><HelloWorld msg="Welcome to Your Vue.js App"/></div>
</template><script>
import HelloWorld from './components/HelloWorld.vue'export default {name: 'App',components: {HelloWorld}
}
</script><style>
#app {font-family: Avenir, Helvetica, Arial, sans-serif;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;text-align: center;color: #2c3e50;margin-top: 60px;
}
</style>

在这里插入图片描述

组件化开发 和 根组件

在这里插入图片描述
在这里插入图片描述

<!-- 结构 -->
<template><div class="App"><div class="box" @click="fn"></div></div>
</template><!-- 逻辑 -->
<script>
//export是导出:导出的是当前组件的配置项
//里面可以提供:data(特殊),methods,computed,watch,生命周期export default{created (){console.log('我是你')},methods:{fn (){alert('你好')}}}
</script><!-- 样式 -->
<style>
.App{width: 400px;height: 400px;background-color: pink;
}
.box{width: 100px;height: 100px;background-color: skyblue;
}
</style>

普通组件的注册

普通组件的注册使用

组件注册的两种方式
1.局部注册:只能在注册的组件内使用(联想局部变量)
①:创建.vue文件(三个组成部分)
②:在使用的组件内部导入并注册
2.全局注册:所有组件内都能使用(联想全局变量)

1.局部注册

①:创建.vue文件(三个组成部分)

往哪创建?
往components中创建,要几个就创建几个,每一个都有三个所对应的组成部分:结构,样式,行为
在这里插入图片描述

②:在使用的组件内部导入并注册

App.vue内进行导入
在这里插入图片描述
使用

  • 当成html标签使用<组件名></组件名>

注意:

  • 组件名规范 → 大驼峰命名法,如:HmHeader

举例如下图👇
在这里插入图片描述

组件内容包含三部分👇
在这里插入图片描述

在App.vue中使用组件方法实例如下代码👇

<template><div class="App"><!-- 头部组件 --><ZxyHeader></ZxyHeader> <!-- 主题组件 --><ZxyMain></ZxyMain><!-- 底部组件 --><ZxyFooter></ZxyFooter></div>
</template><script>
import ZxyHeader from './components/ZxyHeader.vue'
import ZxyMain from './components/ZxyMain.vue'
import ZxyFooter from './components/ZxyFooter.vue'
export default{//写一个配置项,在对象里面去进行当前组件的注册components:{//'组件名':组件对象ZxyHeader:ZxyHeader,//这样注册好之后,就可以把它当成组件,在上面的template中使用了ZxyMain:ZxyMain,//后面的这两个不用像前面一样,只要写前一半就可以了ZxyFooter}
}
</script><style>.App{width: 600px;height: 700px;background-color: skyblue;margin: 0 auto;padding: 20px;}
</style>

2.全局注册

①:创建.vue文件(三个组成部分)
②:main.js中进行全局注册

比如通用按钮在这里插入图片描述
1.全局注册的语法是Vue.component('组件名',组件对象),使用和注意事项和局部注册一样(组件名就是给你要在这里用的组件起个名字,组件对象就是你在component中给组件起的名字)
2.像这样注册好之后👉在这里插入图片描述
如果你想要用它,就可以把它用到之前写好的局部组件中,比如要给局部组件加上这个button在这里插入图片描述
在这里插入图片描述
小tip:用 cursor:pointer 可以把按钮上的三角鼠标变成一个小手

全部代码如下:

ZxyButton.vue👇

<template><button class="zxy-button">zxy的通用按钮</button>
</template><script>
export default{}</script><style>
.zxy-button{height: 50px;line-height: 50px;padding: 0 20px;font-size: 30px;background-color: #62707e;border-radius: 10px;
}
</style>

main.js👇

import Vue from 'vue'
import App from './App.vue'//编写导入的代码,往代码的顶部编写(规范)
import ZxyButton from './components/ZxyButton'
Vue.config.productionTip = false//进行全局注册
Vue.component('ZxyButton',ZxyButton)new Vue({el:'#app',render: (createElement) => {return createElement(App)}
}).$mount('#app')

导入局部组件👇

<template><div class="zxy-footer">我是zxy的尾巴<ZxyButton></ZxyButton>//就是这一行</div>
</template>

如果不像现在全局注册中,就像这个按钮在组件里面,可以这么写在这里插入图片描述
但是如果每个组件里面都想用这个button的话,就需要在想应用到的每个组件里面都写一遍上图的代码,太麻烦了。所以相同的东西,用全局组件很方便,只需写一个标签就好了

图文总结👇在这里插入图片描述

综合案例

看图拆分组件
在这里插入图片描述
组件中可以再拆组件:比如新鲜好物、热门品牌、最新专题中的小方块

用Vue开发页面的思路:
1.分析页面,按模块拆分组件,搭架子(局部或全局注册)
2.根据设计图,编写组件html结构css样式
3.拆分封装通用小组件(局部或全局注册)
4.通过js动态渲染,实现功能

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

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

相关文章

宠物互联网医院系统

在数字时代&#xff0c;宠物医疗迎来了一场革新&#xff0c;动物互联网医院系统以其先进的技术和智能的特性成为宠物护理的领军者。本文将介绍宠物互联网医院系统的一些关键技术和代码示例&#xff0c;揭示这一科技奇迹的实现原理。 1. 远程医疗服务的实现 远程医疗服务是宠…

国标GB28181协议EasyCVR启动失败报错“Local Machine Check Error”的解决方法

国标GB28181安防监控系统EasyCVR平台采用了开放式的网络结构&#xff0c;可支持4G、5G、WiFi、有线等方式进行视频的接入与传输、处理和分发。安防视频监控平台EasyCVR还能支持GIS电子地图模式&#xff0c;基于监控摄像头的经纬度地理位置信息&#xff0c;将场景中的整体安防布…

当pytest遇上poium会擦出什么火花

当pytest遇上poium会擦出什么火花 首先&#xff0c;创建一个test_sample/test_demo.py 文件&#xff0c;写入下面三行代码。 def test_bing(page):page.get("https://www.bing.com")assert page.get_title "必应"不要问题 page 从哪里来&#xff0c;打开…

浅谈DNS的工作原理及其作用

DNS&#xff0c;全称为Domain Name System&#xff0c;即域名系统&#xff0c;是一种用于将域名和IP地址相互映射的分布式数据库系统。它将可读的域名转换为对应的IP地址&#xff0c;使得用户可以更方便地通过域名来访问网络上的资源。今天锐成就简单探讨一下DNS的工作原理及其…

数据采集与预处理02 :网络爬虫实战

数据采集与预处理02 &#xff1a;网络爬虫实战 爬虫基本知识 1 HTTP的理解 URL uniform resource locator. 是统一资源定位符&#xff0c;URI identifier是统一资源标识符。几乎所有的URI都是URL。 URL前部一般可以看到是HTTP还是HTTPS&#xff0c; 这是访问资源需要的协议…

Kafka-服务端-KafkaController

Broker能够处理来自KafkaController的LeaderAndIsrRequest、StopReplicaRequest、UpdateMetadataRequest等请求。 在Kafka集群的多个Broker中&#xff0c;有一个Broker会被选举为Controller Leader,负责管理整个集群中所有的分区和副本的状态。 例如&#xff1a;当某分区的Le…

使用Electron打包vue文件变成exe应用程序

文章目录 一、下载Electron二、修改下载的Electron项目1.修改index.html文件2.修改main.js文件3.修改package.json文件 三、修改vue项目1.修改vite.config.js文件2.修改.env.production文件3.修改auth.js文件4.修改router下得index.js文件6.修改Navbar.vue文件 四、Electron打包…

数据结构:3_栈和队列

栈和队列 一.栈 1. 栈的概念及结构 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。**进行数据插入和删除操作的一端称为栈顶&#xff0c;另一端称为栈底。**栈中的数据元素遵守后进先出LIFO&#xff08;Last In First Out&#x…

粒子类特效SDK,电影级的逼真特效

美摄科技&#xff0c;作为技术创新的先驱&#xff0c;开发了一款独特的粒子类特效SDK&#xff0c;为专业内容创作者提供了一种全新的工具&#xff0c;以实现电影级的逼真特效。 一、技术背景与挑战 随着移动设备的普及和性能的提升&#xff0c;越来越多的视觉内容在移动端呈现…

MSP430仿真器使用常见问题

一、 主要是驱动安装问题 有用户反应驱动安装不上&#xff0c;按照用户手册操作一直不能安装成功。 可以尝试如下步骤进行安装。 1. 双击设备管理器中无法安装或者提示有错误的430仿真器设备 选择驱动程序——更新驱动程序 选择手动安装 选择从电脑设备驱动列表中安装 弹出下…

春节要来了,可是电视家却走了,没有春晚看了

春节马上就要到来&#xff0c;可是随着时代越来越进步&#xff0c;年味也越来越淡了&#xff0c;尤其在海外&#xff0c;更没有国内的气氛浓郁&#xff0c;所以只有每年看春晚才会让我感觉到今天又是新的一年了。 而且长大后会发现更有年味的不是新年&#xff0c;而是新年前…

【面试突击】生产环境面试实战

&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308; 欢迎关注公众号&#xff08;通过文章导读关注&#xff1a;【11来了】&#xff09;&#xff0c;及时收到 AI 前沿项目工具及新技术的推送&#xff01; 在我后台回复…

Linux版本下载Centos操作

目录 一、Centos7 二、下载Centos7镜像 三、下载Centos7 买了个硬件安装裸机&#xff08;一堆硬件&#xff09; 把安装盘放到虚拟机里面&#xff0c;给机器加电 配置设置 ​编辑 网络配置 开启网络功能 四、安装linux客户端 Xshell是什么 Xshell使用&#xff08;连接…

如何使用Docker本地部署Jupyter Notebook并结合内网穿透实现远程访问

&#x1f4d1;前言 本文主要是Linux下通过使用Docker本地部署Jupyter Notebook并结合内网穿透实现远程访问的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是青衿&#x1f947; ☁️博客首页&#xff1a;…

用Python打造批量下载视频并能可视化下载进度的炫酷下载器

目录 一、技术原理 二、实现步骤 三、代码示例 总结 在当今数字化时代&#xff0c;视频内容越来越丰富&#xff0c;而下载和管理这些视频的需求也随之增长。为了满足这一需求&#xff0c;本文将向你展示如何使用Python来打造一个批量下载视频并能可视化下载进度的炫酷下载器…

RabbitMQ系列之交换机的使用

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是君易--鑨&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的博客专栏《RabbitMQ系列之交换机的使用》。&#x1f3af;&…

《WebKit 技术内幕》学习之五(1): HTML解释器和DOM 模型

第五章 HTML 解释器和 DOM 模型 1.DOM 模型 1.1 DOM标准 DOM &#xff08;Document Object Model&#xff09;的全称是文档对象模型&#xff0c;它可以以一种独立于平台和语言的方式访问和修改一个文档的内容和结构。这里的文档可以是 HTML 文档、XML 文档或者 XHTML 文档。D…

响应式Web开发项目教程(HTML5+CSS3+Bootstrap)第2版 例4-5 select

代码 <!doctype html> <html> <head> <meta charset"utf-8"> <title>select</title> </head><body> <!--单选下拉菜单可设置默认选中项--> 所在城市&#xff08;单选&#xff09;:<br> <select>…

【设计并实现一个满足 LRU (最近最少使用) 缓存约束的数据结构】

文章目录 一、什么是LRU&#xff1f;二、LinkedHashMap 实现LRU缓存三、手写LRU 一、什么是LRU&#xff1f; LRU是Least Recently Used的缩写&#xff0c;意为最近最少使用。它是一种缓存淘汰策略&#xff0c;用于在缓存满时确定要被替换的数据块。LRU算法认为&#xff0c;最近…

【机器学习】模型的综合评判,备选模型和幸运模型

一、介绍 在快速发展的机器学习&#xff08;ML&#xff09;领域&#xff0c;模型的持续开发和部署对于技术进步和实际应用至关重要。这个生命周期的两个关键阶段是“候选模型”和“祝福模型”。对于任何参与机器学习的人来说&#xff0c;从数据科学家和工程师到依赖这些技术的企…