首页 > 其他分享 >vue学习记录 2

vue学习记录 2

时间:2023-06-09 16:24:39浏览次数:39  
标签:vue name 记录 HelloWorld 学习 import router 页面

打开昨天的vue项目,没记错的话网上查到的信息说,代码编辑部分就只在src文件夹,包括asset,router和components,其他的全是配置文件。

项目新建默认是一个巨大的vue图标和两行链接,布局在HelloWorld.vue,但是我昨天还没找到那个名为logo.png的图标是哪里插进去的。今天先摸清页面,然后做一个扫雷难度选择界面,准备给扫雷棋盘的大小数据传参。

开始咯!不懂的或者准备回头看的全都黄底标记一下,欸嘿。


 

把一堆超链接删掉以后页面只留下标题和图标。

vue文件页面总结:template + script + style 我直觉style不是必须的

1 <template>
2   <div class="hello">
3     <h1>{{ msg }}</h1>
4     <ul><li></li></ul>
5   </div>
6 </template>

template看起来和HTML差不多,不过是双括号传参,至于页面跳转,原项目新建提供的方式是直接传url: <a href="https://vuejs.org" target="_blank">Core Docs</a> ,自制vue怎么跳转还不知道。

 1 <script>
 2 export default {
 3   name: 'HelloWorld',
 4   data () {
 5     return {
 6       msg: 'Welcome to Your Vue.js App'
 7     }
 8   }
 9 }
10 </script>

刚刚出现的参数msg赋值就在这,就是不知道怎么读其他页面传过来的值。我看了眼router文件夹下的App.vue,name应该是绑死vue文件的文件名。手贱试试改name。

把name改掉了,但是结果没有变化,网络也没有崩。上百度查了一下,这个只作为组件选项用的,全局注册的时候自动分配name。原来vue文件不止可以做页面喔,像这个属性可以用来捏树形组件,或许拿来做目录是不错的选择。

搜的网页先码住,vue树形组件: https://blog.csdn.net/weixin_39015132/article/details/83573896 。name除了自我调用以外,还可以方便出error的时候查看信息(),最常用的是“当我们使用 keep-alive时可以使用include和exclude指定需要缓存和不需要缓存的组件。指定的依据就是组件的name。”大佬说的很简练,但是我不知道keep-alive是啥,有点懵。码住,回头查。

至于下面的 data () {return {msg: 'Welcome to Your Vue.js App'}} 应该就是页面数据处理的地方。这个结构很像后端语言写的那种完整函数,应该能整很多活。但是百度搜了一下没查到data能不能递归,好像很少写很长的data,如果要写长data基本都是写data内的return。回头前辈有空了我问问。

最后对于整个export default查了一下,是模块导出,可以导出到本组件,也可以导出给其他页面(在其它页面用import)。百度发现还有一种是export不带default。码住一下网页: https://blog.csdn.net/qq_27674439/article/details/108094742 这个佬讲了export default干什么用的,还有它和default的区别,很详细。能懂但是代码还没记,回头实现一下代码试试。看了这个网页后好奇export能不能直接传参,又查了一下,发现一个很详细的vue组件传参教程,码住网页回头看: https://zhuanlan.zhihu.com/p/262530502?utm_id=0 大概是export和export default都是可以传的,但得通过内部的props或者添加其他修饰符什么的。回头可以挨个实现一下。

<style scoped>
h1, h2 {
  font-weight: normal;
}
ul {
  list-style-type: none;
  padding: 0;
}
li {
  display: inline-block;
  margin: 0 10px;
}
</style>

style部分很明显是格式设置,属性和css都是共通的。

scoped在创建的时候就有备注说明:能将格式限制在这个HelloWorld.vue里;

font-weight查了一下是字体粗细:细lighter 正常normal 粗bold 超粗bolder 继承父体inherit

list-style-type查了一下是列表子项之前的内容:什么都没有就是none,可以赋值字符串: 参考网址 https://blog.csdn.net/No1banana/article/details/122832241 这个网址顺带介绍了list-style-image、list-style-position、list-style,全是列表子项前符号的设置。padding据说是清除网页原有的padding,使设计和开发者预期的一致。display:垂直显示自定义宽高block,并排显示定死宽高inline,并排自定义宽高inline-block

 

总的来说,像是把html、js、css放在了一个文件里。


突然发现我忘了干什么——那个logo图标怎么插进去的?

原来是在App.vue里设置的。HelloWorld看着全,但只是页面布局的一个小组件。在App.vue中不过是一个<router-view>

1 <template>
2   <div id="app">
3     <img src="./assets/logo.png">
4     <router-view/>
5   </div>
6 </template>

但为什么是router-view呢?找了一圈发现是router文件夹下index.js的设置:

 1 import Vue from 'vue'
 2 import Router from 'vue-router'
 3 import HelloWorld from '@/components/HelloWorld'
 4 
 5 Vue.use(Router)
 6 
 7 export default new Router({
 8   routes: [
 9     {
10       path: '/',
11       name: 'HelloWorld',
12       component: HelloWorld
13     }
14   ]
15 })

这里将routes列表首项定为HelloWorld组件了,但和“router-view”还是没关系,我打算出手实验一下,让routes列表多一个HelloWorld组件。很遗憾的是,多出的这一个在页面上毫无反馈。这个时候,我看到了path,有了个大胆的想法。

 1 export default new Router({
 2   routes: [
 3     {
 4       path: '/',
 5       name: 'HelloWorld',
 6       component: HelloWorld
 7     },
 8     {
 9       path: '/hwPage',
10       name: 'HelloWorld',
11       component: HelloWorld
12     }
13   ]
14 })

把它改成这样子以后,在代码运行的网页网址后加上hwPage,会进入一模一样的网页。

我百度查一查这个router到底是啥东西。

router相当于一个路由器,所以参数会有path、name、component,由index.js配置。

最开始的:

import Vue from 'vue'
import Router from 'vue-router'

似乎是必写的,然后写组件的import用于配置路由相关信息: import HelloWorld from '@/components/HelloWorld' 该import的都import完了之后,给Vue安装插件 Vue.use(Router) 按照网络教程还需要创建routes然后const router=new VueRouter……但很明显,这个系统自建的要简练很多。再下面就是将路由和组件连接起来。

那么router-view其实是路由使用的一种方式:Router有两种标签。

<router-link>:据说会被渲染成一个<a>标签。我试了一下,直接把view改成link不显示,如果是 <router-link>goto</router-link> 的话,也不显示,太奇怪了,加了style也没用。搜了搜,原来正确的使用方法是: <router-link to="/">goto</router-link> to后面的字符串就是page,但是点击后仍跳转到的页面仍然有logo,非常奇怪。
<router-view>:该标签会根据当前的路径,动态渲染出不同的组件。link要to,而view要name。没有name的话就会默认default。比如系统生成的这一行还能显示成 <router-view name="HelloWorld"/> 。至于主页,通过main.js设定。

目前为止可算是串起来了。试图在主页写一个连接,点击跳转到全新的页面,只显示HelloWorld。尝试复刻自己的HelloWorld,但是跳错说script只能有一个,有点懵,这个文件里只有一个啊。搞了大半天,发现页面还是通过一个html控制的,这个不在src里……思维定势害死人。

我在src里改了大半天一无所获,查资料看别人怎么新建的,结果人家开头就整个html。
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <title>winmine</title>
  </head>
  <body>
    <div id="app"></div>
    <!-- built files will be auto injected -->
  </body>
</html>

 

总结一下:src外html→src内main.js+App.vue→index.js+components

怎么感觉我从0学起一样的……

 

标签:vue,name,记录,HelloWorld,学习,import,router,页面
From: https://www.cnblogs.com/yyn20230517/p/17469019.html

相关文章

  • 「学习笔记」DP 学习笔记1
    序列DP一般序列DP核心思想:将序列的前\(i\)个数的状态用一个更简单的形式表示出,并且体现出这些状态对后续的影响。题目ABC267D给定一个序列\(a\),找到一个长度为\(m\)的子序列\(b\),使得\(\sumb_i×i\)最大。\(n,m\le2×10^3\)。状态:\(f(i,j)\):前\(i......
  • Postman 中 GraphQL 教程:快速入门学习
    GraphQL是一种用于API的开源数据查询和操作语言,用于API的查询语言和运行时。它使客户端能够精确地指定其数据需求,并获得预测性地结果。GraphQL旨在提高API的效率、灵活性和可靠性。Postman是一款用于API开发的强大工具,它支持REST和GraphQLAPI。Postman还提供了一个用户友好的界面,......
  • 011 数据库学习笔记--游标
    游标:定义:游标是对数据查询结果集的一种访问机制,允许用户对结果集进行逐条访问,即单条数据。访问对象是,结果集可以理解为定义在特定结果集上的指针,控制这个指针,遍历数据集或制定特定的行--对其进行读取或写入作用:定位到结果集中的某一行,对当期位置的数据进行读写数据读取......
  • 一定要收藏的PKPM学习笔记
    01裂缝与挠度裂缝,模型里计算裂缝是按矩形截面计算弯矩,而不考虑翼缘影响,实际上翼缘影响是很大的,也就是说模型计算出的结果裂缝偏大,一般梁支座裂缝不考虑,因为本来强柱弱梁也是要出现塑性铰的,但是梁底部裂缝要考虑,而且梁尤其是KL底筋配筋结果最好比计算结构稍大,也就是弯矩调幅0.8而不......
  • Vue 调试访问本地后端接口配置
    记录一下本地测试前端的时候怎么访问本地后端接口。时间太长容易忘。。。。1、首先要知道前端在访问后端的时候是怎么加上后端接口地址的。如下图,找到封装http请求的文件,src/utils/rerquest.js该图中的baseURL就是访问时我们加上的后端请求地址。baseURL:process.env.VUE_APP......
  • 强化学习On-policy vs Off-policy
    强化学习On-policyvsOff-policy这里我们讲讲强化学习中on-policy和off-policy的区别。实际上这个区别非常简单,就是说如果算法在更新它的policy的时候,它是依赖于前面的Qvaluefunction的话,那么它就是on-policy的。反之如果它是依赖于随机的一个输入或者人为的操控,那么它就是一个......
  • MySQL中查询第2-5条记录的语句为
    查询第m行到第n行记录,注意表中的记录下标是从0开始的,就像数组一样select*fromstudentlimitm,n;返回m+1到m+n行记录,m代表开始的下标,n代表查找的结果数,将返回n行结果select*fromstudentlimit2,8;返回3到10行记录 ......
  • #Vue-cli 5 怎么打印代理地址 #Vue-cli 5 怎么查看真是请求地址 ?
    proxy:{'/api':{target:'http://192.168.3.47:1228',changeOrigin:true,onProxyReq:function(proxyReq,req,res){console.log('[proxy]:'+proxyReq.getHeader('origin')+proxyReq.p......
  • 非科班自学计算机需要学习什么内容?
    文章目录前言一、方向>语言的选择1.1语言vs方向1.2重要观点!二、自学方法另外说到计算机相关基础推荐书籍:三、自学资源前言非计算机专业,又想通过自学找到计算机相关工作的同学还是很多的。并且这条路也是可行的,毕竟计算机专业的同学也要自学。一、方向>语言的选择其实在校生如果......
  • 音标学习——1
                         ......