初识node.js(使用)

news2024/12/26 16:00:27

文章目录

    • 项目目录介绍和运行流程
      • 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创建元素结构,但创建了结构并没有返回,所以它得不到你创建的结果,
    //所以前面要加一个return
    return 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.coloradmin.cn/o/1406716.html

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

相关文章

Vue-35、Vue中使用ref属性

1、ref属性 2、代码 <template><div id"app"> <!-- <img alt"Vue logo" src"./assets/logo.png">--><h1 v-text"msg" ref"title"></h1><button click"showDOM" ref&…

k8s-基础知识(Pod,Deployment,ReplicaSet)

k8s职责 自动化容器部署和复制随时扩展或收缩容器容器分组group&#xff0c;并且提供容器间的负载均衡实时监控&#xff0c;即时故障发现&#xff0c;自动替换 k8s概念及架构 pod pod是容器的容器&#xff0c;可以包含多个container pod是k8s最小可部署单元&#xff0c;容器…

Git学习 -- 分支合并、版本修改相关

目录 learn GIT Learn Git Branching merge和rebase的使用 基础命令 版本回退 工作区和暂存区 管理修改 撤销修改 删除修改 learn GIT Learn Git Branching 这是Gitee上的Git学习教程 Learn Git Branching Git Rebase Learn Git Branching 最终的实操 merge和rebase的…

C++PythonC# 三语言OpenCV从零开发(4):视频流读取

文章目录 相关链接视频流读取CCSharpPython 总结 相关链接 C&Python&Csharp in OpenCV 专栏 【2022B站最好的OpenCV课程推荐】OpenCV从入门到实战 全套课程&#xff08;附带课程课件资料课件笔记&#xff09; OpenCV 教程中文文档|OpenCV中文 OpenCV教程中文文档|W3Csc…

CVE-2024-0738 Mldong ExpressionEngine RCE漏洞分析

漏洞描述 A vulnerability, which was classified as critical, has been found in ???? mldong 1.0. This issue affects the function ExpressionEngine of the file com/mldong/modules/wf/engine/model/DecisionModel.java. The manipulation leads to code injection…

spawn_group_template | spawn_group | linked_respawn

字段介绍 spawn_group | spawn_group_template 用来记录与脚本事件或boss战斗有关的 creatures | gameobjects 的刷新数据linked_respawn 用来将 creatures | gameobjects 和 boss 联系起来&#xff0c;这样如果你杀死boss&#xff0c; creatures | gameobjects 在副本重置之前…

【正点原子STM32】STM32基础知识(F1F4F7H7 STM32系统框架、寻址范围、存储器映射的存储器功能划分、寄存器映射)

一、STM32系统框架 1.1、Cortex M内核 & 芯片1.2、F1系统架构1.3、F4系统架构1.4、F7系统架构1.5、H7系统架构 二、STM32的寻址范围&#xff1f; 三、存储器映射 存储器功能划分&#xff08;F1为例&#xff09;STM32F1存储器映射图 四、寄存器映射 寄存器基础知识STM3…

Unity3d C#实现三维场景中图标根据相机距离动态缩放功能

前言 如题的需求&#xff0c;其实可以通过使用UI替代场景中的图标来实现&#xff0c;不过这样UI的处理稍微麻烦&#xff0c;而且需要在图标上添加粒子特效使用SpriteRender更方便快捷。这里就根据相机离图标的位置来计算图标的缩放大小即可。这样基本保持了图标的大小&#xf…

CSS 图片遮罩学习小节

概念&#xff1a;-webkit-mask-image是一项用于制作镂空图形和图形遮罩效果的CSS样式属性。 -webkit-mask-image 的值既可以是渐变色也可以是图片地址。 -webkit-mask-image 的起源很早&#xff0c;但兼容性不好&#xff0c;因此用途并不广泛。 效果如下&#xff1a; 底图&…

构建公共场景消防安全,基于YOLOv8【n/s/m/l/x】全系列参数模型开发构建公共消防场景下火点烟雾检测识别系统

每年火灾导致的意外事故数不胜数&#xff0c;对于意外火灾等实践如果能够做到及早发现及早制止就能够尽可能地在源头端降低意外事故发生的可能性&#xff0c;如果能够结合社区、楼宇等广泛的摄像头资源&#xff0c;对公共场景画面实时计算&#xff0c;及早检测预警火点烟雾能够…

学校“数据结构”课程Project—扩展功能(自主设计)

目录 一、设想功能描述 想法缘起 目标功能 二、问题抽象 三、算法设计和优化 1. 易想的朴素搜索 / dp 搜索想法 动态规划&#xff08;dp&#xff09;想法 2. 思考与优化 四、算法实现 五、结果示例 附&#xff1a;使用的地图API 一、设想功能描述 想法缘起 OSM 导出…

我每天如何使用 ChatGPT

我们都清楚互联网的运作方式——充斥着各种“爆款观点”&#xff0c;极端分裂的意见&#xff0c;恶搞和无知现象屡见不鲜。 最近&#xff0c;大家对于人工智能&#xff08;AI&#xff09;特别是大语言模型&#xff08;LLMs&#xff09;和生成式 AI&#xff08;GenAI&#xff0…

jenkins安装配置,使用Docker发布maven项目全过程记录(2)

2、使用Docker发布Maven项目过程的配置 首先说明&#xff0c;在这里仅介绍我使用Jenkins的发布过程的配置&#xff0c;不涉及Dockerfile、docker-compose.yml文件的内容。 2.1 创建Item 在这里&#xff0c;输入item名称&#xff0c;我使用的Freestyle project&#xff0c;点击…

短视频矩阵系统软件/电脑pc企业版/手机端双开发~~源头

短视频矩阵系统软件开发的属性主要包含以下几个方面&#xff1a; 开发属性&#xff1a; 1. 功能属性&#xff1a;功能是短视频矩阵系统的核心属性&#xff0c;包括短视频的采集、编辑、发布、推广、互动等功能。此外&#xff0c;系统的个性化定制也是考虑的重要因素&#xff0…

Pycharm运行提示(运行‘Python测试(00.py内)‘(u)

为什么有时候我在pycharm中运行代码会出现图片中的问题&#xff1f; 我们该如何改过来&#xff1f; 很简单 点击文件-设置 点击Python集成工具&#xff0c;在默认测试运行程序里修改为Unittest即可 再次运行代码就会显示正常的运行 你的pycharm可能是英文 如何英文变中文&…

6.go 库源码文件

目录 概述总结例子代码结构代码执行结果 结束 概述 库源码文件是不能被直接运行的源码文件&#xff0c;它仅用于存放程序实体&#xff0c;这些程序实体可以被其他代码使用&#xff08;只要遵从 Go 语言规范的话&#xff09; 那么程序实体是什么呢&#xff1f;在 Go 语言中&…

jenkins安装配置,使用Docker发布maven项目全过程记录(1)

使用的CentOS8 系统&#xff0c;其它Linux系统类似 1、jenkins安装 1.1、配置JAVA环境 使用的服务器环境中&#xff0c;安装了Java1.8与Java17&#xff0c;当前jenkins的最低java版本要求java11。系统默认使用的是java1.8&#xff0c;因此需要切换环境。 alternatives --co…

shopee最新选品:Shopee平台上的最新选品策略和方法

在Shopee平台上进行选品是卖家们必须经历的重要步骤。通过精心选择和定位产品&#xff0c;卖家可以提高产品的市场接受度和销售业绩。然而&#xff0c;要在竞争激烈的电商市场中脱颖而出&#xff0c;并不是一件容易的事情。本文将介绍一些在Shopee平台上进行最新选品时可以采用…

C#winform上位机开发学习笔记11-串口助手接收数据用波形显示功能添加

1.功能描述 接收串口数据&#xff0c;并将收到的十六进制数据用坐标系的方式将数据波形展示出来 2.代码部分 步骤1&#xff1a;定义链表&#xff0c;用于数据保存 //数据结构-线性链表private List<byte> DataList new List<byte>(); 步骤2&#xff1a;定义波…

微信小程序(十二)在线图标与字体的获取与引入

注释很详细&#xff0c;直接上代码 上一篇 新增内容&#xff1a; 1.从IconFont获取图标与文字的样式链接 2.将在线图标配置进页面中&#xff08;源码&#xff09; 3.将字体配置进页面文字中&#xff08;源码&#xff09; 4.css样式的多文件导入 获取链接 1.获取图标链接 登入…