Vue.js学习笔记

一、Vue项目入口解析

1. 各初始文件概述

参考地址:https://blog.youkuaiyun.com/qq_36145914/article/details/86497123

在vue cli构建的项目中,main.js是项目的入口文件,定义了vue实例,并引入根组件app.vue,将其挂载到index.html中id为‘app’的节点上。

å¨è¿éæå¥å¾çæè¿°

main.js:

import Vue from 'vue'
import App from './App'

/* eslint-disable no-new */
new Vue({
  el: '#app', //挂载点
  components: { App }, // 根组件
  template: '<App/>'
})
  • 注意:
    vue实例挂载后,会对节点原内容进行覆盖。所以,即便index.html和app.vue中都定义了<div id="app"></app>, 最终网页也不会出现两个id为app的节点。
<!--index.html-->
<body>
    <div id="app"></div>
  </body>

<!--app.vue-->
<template>
  <div id="app">
    .....
  </div>
</template>

../router/index.js

把准备好的路由组件注册到路由里

2. 问题

  • main.js为什么叫入口文件,什么是“入口文件”?
  • 在运行npm run dev后,若不做特殊设置,index.html实际页面中仅挂载了app.js一个脚本,所有组件去哪儿了,app.js是如何形成的?
  • vue实例化在main.js中,但在index.html中并没有引入main.js,main.js与index.html是如何产生关联的?

3. 解答:Webpack

vue cli搭建的项目本质是一个集成预设置的webpack项目。是webpack驱动着项目的打包,热重载和本地运行。
而上述问题都是由webpack逐一处理的:

  • 入口文件是一个webpack概念;入口文件是webpack构建内部依赖图的起点
  • app.js是由webpack打包生成的输出文件
  • 而将app.js挂载到index.html这一过程是由webpack的一个插件——html-webpack-plugin完成的。

4. Vue的Webpack设置

入口配置

在webpack.base/webpack.dev中,vue默认设置main.js为项目的唯一入口。

在项目打包时,webpack会从main.js开始构建依赖图,梳理整个项目依赖且不重复的模块。

入口配置如下:

 entry: {
    app: './src/main.js'
  },
  • 延伸:如果要做多页面项目,而非默认的SPA(single page web application),那么就需要为每个页面设置一个入口。如果要将app与第三方库分离,也需要设置两个入口。

输出配置

在output中,可以配置打包输出文件的路径,名称,进行分离js/css等操作。

// webpack.base.conf
  output: {
    path: config.build.assetsRoot,
    filename: '[name].js',
    publicPath: process.env.NODE_ENV === 'production'
      ? config.build.assetsPublicPath
      : config.dev.assetsPublicPath
  },

这里只讲一下filename这一属性:

filename定义的是输出文件的名称,[name]是webpack中的占位符,它对应entry中对象的键名。

默认配置中仅有一个入口-app,所以,在默认的开发模式下,本项目的所有资源最终打包生成的文件就是app.js。

注:在开发模式下,项目是跑在webpack-dev-server的虚拟服务器上,此时app.js仅存在于内存中。

HtmlWebpackPlugin配置

vue的webpack默认配置中还加入了htmlwebpackplugin插件,用于生成index.html与挂载JS脚本。

   new HtmlWebpackPlugin({
      filename: 'index.html',
      template: 'index.html',
      inject: true,
      favicon:'static/img/temple.png'
    })

配置参数中:

  • filename是输出文件名,
  • template是本地模板文件名,HtmlWebpackPlugin默认挂载的模板就是根目录下的index.html。
  • inject属性定义了js脚本加载的位置,默认值true,则在body最下方加载。
  • 你还可以添加其它参数,比如网站图标favicon等,这一系列参数均可参考webpack官方文档。

5. 总结

当你输入 npm run dev 后,发生了这样一连串事件——webpack选择了开发配置,并进入main.js入口文件,构建项目依赖图。webpack将整理后的所有依赖模块打包成输出文件app.js,接着htmlwebpackPlugin将它挂载到index.html页面上。

二、VSCode配置Node环境

"version": "0.2.0",
"configurations": [
        {
            "type" : "node",
            "request": "attach",
            "name" : "Node:Nodemon",
            "processId": "${command:PickProcess}",
            "restart": true,
            "protocol": "inspector"
        }
]

三、组件相关知识

  • 组件是可复用的Vue实例

组件的各属性选项

  • el: 挂载元素。可以是CSS选择符,或实际HTML元素,或返回HTML元素的函数
  • data: 必须是一个函数
  • props: 向子组件传递数据
  • components: 子组件。
  • template: 模板。模板将会替换挂载的元素。挂载元素的内容都将被忽略。也就是说,template: '<App/>' 表示用<app></app>替换index.html里面的<div id="app"></div>

生命周期

所谓的生命周期钩子,就是说组件在特定的时刻会自动触发事件,执行对应的函数。

四、指令

v-bind

作用:用来动态的绑定一个或者多个特性

v-for

作用:通过遍历数组来进行渲染。

并且在v-for中,拥有对父作用域属性的完全访问权限。

<ul id="app">
    <li v-for="item in items">
        {{parent}}-{{item.text}}
    </li>
</ul>
<script type="text/javascript">
    var example = new Vue({
      el:'#app',
      data:{
        parent:'父作用域'
        items:[
          {text:'文本1'},
          {text:'文本2'}
        ]
      }
    })
</script>

<!--渲染后-->

<ul id="app">
    <li>父作用域-文本1</li>
    <li>父作用域-文本2</li>
</ul>

v-model

作用:在表单上创建数据双向绑定。

v-model会忽略所有表单元素的value、checked、selected特性的初始值。因为它选择Vue实例数据做为具体的值。

修饰符:

  • .lazy:默认情况下,v-model同步输入框的值和数据。通过这个修饰符,可转变为发生change事件再同步。
  • .number:自动将用户输入第值转化为数值类型
  • .trim:自动过滤用户输入的首尾空格

各种Tips

  • vue的核心:简洁的模板语法,声明式地将数据渲染进 DOM 的系统,所有东西都是响应式
  • export default:这样export的话在import时模块名字就可以随便写啦

模板语法

  • “Mustache”语法 (双大括号) 的文本插值
<span>Message: {{ msg }}</span>

属性

  • el
  • data
  • computed 计算属性默认只有getter,但是也可以自己定义setter
  • watch
【CNN-GRU-Attention】基于卷积神经网络和门控循环单元网络结合注意力机制的多变量回归预测研究(Matlab代码实现)内容概要:本文介绍了基于卷积神经网络(CNN)、门控循环单元网络(GRU)与注意力机制(Attention)相结合的多变量回归预测模型研究,重点利用Matlab实现该深度学习模型的构建与仿真。该模型通过CNN提取输入数据的局部特征,利用GRU捕捉时间序列的长期依赖关系,并引入注意力机制增强关键时间步的权重,从而提升多变量时间序列回归预测的精度与鲁棒性。文中涵盖了模型架构设计、训练流程、参数调优及实际案例验证,适用于复杂非线性系统的预测任务。; 适合人群:具备一定机器学习与深度学习基础,熟悉Matlab编程环境,从事科研或工程应用的研究生、科研人员及算法工程师,尤其适合关注时间序列预测、能源预测、智能优化等方向的技术人员。; 使用场景及目标:①应用于风电功率预测、负荷预测、交通流量预测等多变量时间序列回归任务;②帮助读者掌握CNN-GRU-Attention混合模型的设计思路与Matlab实现方法;③为学术研究、毕业论文或项目开发提供可复现的代码参考和技术支持。; 阅读建议:建议读者结合Matlab代码逐模块理解模型实现细节,重点关注数据预处理、网络结构搭建与注意力机制的嵌入方式,并通过调整超参数和更换数据集进行实验验证,以深化对模型性能影响因素的理解。
下载前必看:https://pan.quark.cn/s/da7147b0e738 《商品采购管理系统详解》商品采购管理系统是一款依托数据库技术,为中小企业量身定制的高效且易于操作的应用软件。 该系统借助VC++编程语言完成开发,致力于改进采购流程,增强企业管理效能,尤其适合初学者开展学习与实践活动。 在此之后,我们将详细剖析该系统的各项核心功能及其实现机制。 1. **VC++ 开发环境**: VC++是微软公司推出的集成开发平台,支持C++编程,具备卓越的Windows应用程序开发性能。 在该系统中,VC++作为核心编程语言,负责实现用户界面、业务逻辑以及数据处理等关键功能。 2. **数据库基础**: 商品采购管理系统的核心在于数据库管理,常用的如SQL Server或MySQL等数据库系统。 数据库用于保存商品信息、供应商资料、采购订单等核心数据。 借助SQL(结构化查询语言)进行数据的增加、删除、修改和查询操作,确保信息的精确性和即时性。 3. **商品管理**: 系统内含商品信息管理模块,涵盖商品名称、规格、价格、库存等关键字段。 借助界面,用户能够便捷地录入、调整和查询商品信息,实现库存的动态调控。 4. **供应商管理**: 供应商信息在采购环节中占据重要地位,系统提供供应商注册、联系方式记录、信用评价等功能,助力企业构建稳固的供应链体系。 5. **采购订单管理**: 采购订单是采购流程的关键环节,系统支持订单的生成、审批、执行和追踪。 通过自动化处理,减少人为失误,提升工作效率。 6. **报表与分析**: 系统具备数据分析能力,能够生成采购报表、库存报表等,帮助企业掌握采购成本、库存周转率等关键数据,为决策提供支持。 7. **用户界面设计**: 依托VC++的MF...
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Algorithm_goddness

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值