vue组件传值和路由——day04

<script><br>    var vm = new Vue({<br>      el: '#app',<br>      data: {<br>        msg: '父组件'<br>      },<br>      components: {<br>        son: {<br>          template: '<h1>子组件 --- {{finfo}}</h1>',<br>          props: ['finfo']  // 把父组件传递过来的 finfo 属性,先在 props 数组中,定义一下,这   样,才能使用这个数据<br>        }<br>      }<br>    });<br>  </script>

注意:先使用 props定义一下才能使用, props 中的数据,都是只读的,无法重新赋值 2. 使用 v-bind或简化指令,将数据传递到子组件中:


原理:父组件将方法的引用,传递到子组件内部,子组件在内部调用父组件传递过来的方法,同时把要发送给父组件的数据,在调用方法的时候当作参数传递进去;

<son @func="getMsg"></son>

子组件内部通过 this.$emit('&#x65B9;&#x6CD5;&#x540D;', &#x8981;&#x4F20;&#x9012;&#x7684;&#x6570;&#x636E;)方式,来调用父组件中的方法,同时把数据传递给父组件使用

<div id="app"><br>    <!-- 引用父组件 --><br>    <son @func="getMsg"></son><br><br>    <!-- 组件模板定义 --><br>    <script type="x-template" id="son"><br>      <div><br>        <input type="button" value="向父组件传值" @click="sendMsg" /><br>      </div><br>    </script><br>  </div><br><br>  <script><br>    // 子组件的定义方式<br>    Vue.component('son', {<br>      template: '#son', // 组件模板Id<br>      methods: {<br>        sendMsg() { // 按钮的点击事件<br>          this.$emit('func', 'OK'); // 调用父组件传递过来的方法,同时把数据传递出去<br>        }<br>      }<br>    });<br><br>    var vm = new Vue({<br>      el: '#app',<br>      data: {},<br>      methods: {<br>        getMsg(val){ // 子组件中,通过 this.$emit() 实际调用的方法,在此进行定义<br>          alert(val);<br>        }<br>      }<br>    });<br>  </script>

后端路由:对于普通的网站,所有的超链接都是URL地址,所有的URL地址都对应服务器上对应的资源;

前端路由:对于单页面应用程序来说,主要通过URL中的hash(#号)来实现不同页面之间的切换,同时,hash有一个特点:HTTP请求中不会包含hash相关的内容;所以,单页面程序中的页面跳转主要用hash实现;

在单页面应用程序中,这种通过hash改变来切换页面的方式,称作前端路由(区别于后端路由);

1.1先引入 vue-router组件库,注意 vue包先引入, vue-router是依赖于vue的。

<script src="./lib/vue-2.4.0.js"></script><br><br><script src=". lib vue-router-3.0.1.js">&#xA0;&#xA0;<br></script src=".>

1.2创建vm实例

 var vm = new Vue({<br>            el:'#app',<br>            data:{},<br>            methods:{},<br>            router:routerObj<br>        })

vm实例中,使用 router 属性来使用路由规则

1.3创建路由对象

var routerObj = new VueRouter({<br>    routes:[ <br>        {path:'/',redirect:'/login'},<br>        {path:'/login',component:login},<br>        {path:'/register',component:register}<br>   ]<br>})

路由对象中参数解释:
routes[]——路由匹配规则
path——表示监听 哪个路由链接地址
component——如果 路由是前面匹配到的 path ,则展示 component 属性对应的那个组件
注意: component 的属性值,必须是一个 组件的模板对象, 不能是 组件的引用名称
redirect——重定向

1.4定义两个路由组件

var login = {<br>    template:'<h1>&#x767B;&#x5F55;&#x7EC4;&#x4EF6;</h1>'<br>}<br>var register={<br>    template:'<h1>&#x6CE8;&#x518C;&#x7EC4;&#x4EF6;</h1>'<br>}

1.5使用 router-view来显示匹配到的组件

<div id="app"><br>    <a href="#/login">&#x767B;&#x5F55;</a><br>    <a href="#/register">&#x6CE8;&#x518C;</a><br><br>    <router-link to="/login"></router-link><br>    <router-link to="/register"></router-link><br><br>    <!-- router-view相当于占位符 --><br>    <router-view></router-view><br></div>

使用 children实现路由的嵌套

 //&#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x8DEF;&#x7531;&#x5BF9;&#x8C61;<br>//&#x5728;new&#x8DEF;&#x7531;&#x5BF9;&#x8C61;&#x7684;&#x65F6;&#x5019;&#x53EF;&#x4EE5;&#x4E3A;&#x6784;&#x9020;&#x51FD;&#x6570;&#xFF0C;&#x4F20;&#x9012;&#x4E00;&#x4E2A;&#x914D;&#x7F6E;&#x5BF9;&#x8C61;<br>var router= new VueRouter({<br>    routes:[   //&#x8DEF;&#x7531;&#x5339;&#x914D;&#x89C4;&#x5219;<br>        {<br>            path:'/com',<br>            component:com,<br>            children:[<br>                {path:'login',component:login},<br>                {path:'register',component:register}<br>            ]<br><br>        },<br>    ]<br>})

使用 children 属性,实现子路由,同时,子路由的 path 前面,不要带 / ,否则永远以根路径开始请求,这样不方便我们用户去理解URL地址

<div id="app"><br>   <router-link to="/account">Account</router-link><br>    <router-view></router-view><br></div><br><br><template id="com"><br>   <div><br>        <h1>&#x8FD9;&#x662F;&#x4E00;&#x4E2A;account&#x7EC4;&#x4EF6;</h1><br>        <router-link to="/com/login">&#x767B;&#x5F55;</router-link><br>        <router-link to="/com/register">&#x6CE8;&#x518C;</router-link><br><br>        <router-view></router-view><br>    </div><br></template><br>

Original: https://www.cnblogs.com/zdh052286/p/12544494.html
Author: 清酒一杯
Title: vue组件传值和路由——day04

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/581589/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • CentOS 7服务器安装Redis并配置集群(上)

    一、环境准备及规划 3台服务器都是CentOS 7.x,服务器IP如下: 10.223.201.141 ,10.223.201.142,10.223.201.143(这3台作为服务…

    Linux 2023年5月28日
    068
  • Linux用户和用户组

    Linux用户和用户组 1.添加新的用户 (用户ID从500开始,0-99系统管理级别、100-499系统预留) useradd 选项 用户名 参数说明 选项: -c commen…

    Linux 2023年6月11日
    082
  • UWP 在XAML设计器中使用设计时数据

    1. 功能解释 有些布局没有数据很难进行可视化。 在本文档中,我们将审查从事桌面项目的开发人员可在 XAML 设计器中模拟数据的一种方法。 此方法是使用现有可忽略的”d…

    Linux 2023年6月13日
    084
  • 022.常见硬盘检测方式

    硬盘监测概述 硬盘异常损坏日常相对概率较高,同时不同的文件系统(xfs,reiserfs,ext3)其检测方式不同。建议使用dmesag查看有没有硬件I/O故障的日志,也可使用用f…

    Linux 2023年6月7日
    081
  • 数据结构001–数据结构概述

    数据结构概述: 程序 = 数据结构 + 算法 算法:一些计算方法,解决问题的流程/步骤(顺序、分支、循环……),通俗的说,算法相当于逻辑,小部分已经被人们发…

    Linux 2023年6月6日
    061
  • 【Hash篇】哈希计算神器-HashMyFiles

    可直接拖放、复制粘贴、添加文件或文件夹的方式来批量计算Hash,操作简便、体积小、免费。这篇来介绍他的汉化和其它一些功能设置—【suy】 目录 1、绿色便携 2、批量算…

    Linux 2023年6月13日
    092
  • 每周一个linux命令(ping)

    基础环境 ping命令介绍 ping&#x547D;&#x4EE4;&#x4E3B;&#x8981;&#x7528;&#x6765;…

    Linux 2023年6月8日
    079
  • usermod -aG命令

    原文链接:https://www.zhoubotong.site/post/73.html添加用户uos到组groupA里: usermod -a -G groupA uos 例如…

    Linux 2023年6月6日
    01.0K
  • 快速构建Web应用,从零学习React后台项目模版

    想要快速构建实际应用,离不开一个好的应用模版,React作为大厂出品工具,有着稳定性和可维护性的保障,同时可以使用相关的全套全家桶(React + React-router + A…

    Linux 2023年5月27日
    086
  • 27. rz与sz上传下载文件

    工作中需要在 Linux 和 Windows 之间传输文件,一般使用xftp等gui工具完成。但是有些第三方linux命令也可以完成上传下载操作 从Linux下载文件到本机 , 在…

    Linux 2023年5月27日
    071
  • Windows server 2012 安装exchange 2013

    一、实验环境 操作系统:Windows server 2012 R2 邮件系统版本:exchange 2013 安装的服务:AD CS、AD DS、IIS、DNS 二、安装exch…

    Linux 2023年6月7日
    0105
  • LVM 逻辑卷管理 Logical Volume Management

    管理磁盘、使用磁盘的一种方式的称呼 优势: 1、在不影响数据的情况下, 扩容、缩容 2、支持快照功能, 方便数据备份 LVM工作流程: 磁盘/分区 —> pv(物…

    Linux 2023年6月7日
    0112
  • SLF4J 日志门面

    SLF4J( Simple Logging Facade For Java),即 简单日志门面。主要是为了给 Java 日志访问提供一套标准、规范的 API 框架,其主要意义在于提…

    Linux 2023年6月8日
    083
  • AOP+Redis+SpringCache翻译字典状态

    1,字典表Or枚举类? 项目里有很多标识状态的字段,比如订单状态:0-未支付,1-已支付,2-已取消。或者性别sex: 0-未知,1-男,2-女 。等等。一般这种我们都会建相应的枚…

    Linux 2023年5月28日
    099
  • 中土批量运维神器《ps1屠龙刀》 pk 西域批量运维圣器《ansible圣火令》

    据故老相传,运维界有句话:”脚林至尊,宝刀【ps1屠龙】,号令被控,莫敢不从”。 https://gitee.com/chuanjiao10/kasini3…

    Linux 2023年6月14日
    0103
  • 一文剖析HTML块和内联元素以及DIV容器,运维开发必备前端技能,基本功强化训练。

    写在开篇 运维开发必备前端技能!虽然很枯燥,知识点很多,但要坚持住哦!笔者和大家一起坚持。本篇和大家一起巩固html中的块元素和内联元素以及DIV容器。 块元素 块元素的特点是啥?…

    Linux 2023年6月7日
    0103
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球