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)

大家都在看

  • redis编译安装

    redis是一个强大的NoSQL数据库,相对于memcached,他提供了更丰富的数据类型,有string、hash、list、set、sorted set这几种类型;还支持数据持…

    Linux 2023年5月28日
    0103
  • 【k8s】kubeadm init 时报错 unknown service runtime.v1alpha2.RuntimeService

    在测试机器中准备搭建 k8s 集群,在 master 节点执行 kubeadm init 时出现报错, unknown service runtime.v1alpha2.Runti…

    Linux 2023年6月7日
    0125
  • [20220303]oracle如何定位使用library cache mutex 3.txt

    [20220303]oracle如何定位使用library cache mutex 3.txt –//这个问题实际上困扰我很久,我开始以为library cache b…

    Linux 2023年6月13日
    075
  • shell operator EOF shell 操作符 << <<<

    总结: 这些被叫做shell操作符 shell operator 主要分为 control operators和redirection operators < Origina…

    Linux 2023年5月28日
    097
  • 循环通过逗号分隔的shell变量

    假设我有一个Unix shell变量,如下所示 variable=abc,def,ghij 我想使用for循环提取所有值(abc,def和ghij),并将每个值传递给一个过程。 脚…

    Linux 2023年5月28日
    088
  • 系列文章分类汇总

    尤娜系列 从前,有一个简单的通道系统叫尤娜…… 尤娜系统的第一次飞行中换引擎的架构垂直拆分改造 四种常用的微服务架构拆分方式 尤娜,我去面试了 专业课回顾 …

    Linux 2023年6月14日
    0104
  • SpringBoot-MVC自动配置原理

    MVC自动配置原理 5.1 官网阅读 在进行项目编写前,我们还需要知道一个东西,就是SpringBoot对我们的SpringMVC还做了哪些配置,包括如何扩展,如何定制。 只有把这…

    Linux 2023年6月14日
    0105
  • 音视频技术入门课- 03 如何做音视频的封装和转码

    视频转码主要涉及编码压缩算法(Encoding)、格式封装操作 (Muxing)、数据传输 (例如 RTMP、RTP)、格式解封装(Demuxing)、解码解压缩算法(Decodi…

    Linux 2023年6月7日
    055
  • 大数据——搭建第一台Hadoop主机

    工具准备 1、VMware 2、CentOS 7 最小安装版 3、远程工具推荐使用 FinalShell 安装系统 1、打开VMware,根据自己的情况配置好虚拟机,选择系统镜像就…

    Linux 2023年5月27日
    0113
  • 记一次 android 线上 oom 问题

    背景 公司的主打产品是一款跨平台的 App,我的部门负责为它提供底层的 sdk 用于数据传输,我负责的是 Adnroid 端的 sdk 开发。 sdk 并不直接加载在 App 主进…

    Linux 2023年6月6日
    0110
  • 一键安装Cisco AnyConnect Secure Mobility Client

    Mac版本 背景:公司内部安装此VPN软件的时候,因默认是安装了所有模块,但我们只需要vpn模块,所产生的干扰。并且有人因不熟悉Mac pkg 软件的卸载方法导致非正常卸载,导致重…

    Linux 2023年6月8日
    0103
  • 写给初学者的Linux errno 错误码机制

    不同于Java的异常处理机制, 当你使用C更多的接触到是基于错误码的异常机制, 简单来说就是当调用的函数发生异常时, 程序不会跳转到一个统一处理异常的地方, 取而代之的是返回一个整…

    Linux 2023年5月27日
    083
  • CentOS7 安装高版本gcc, g++, gfortran等工具

    SCL(Software Collections)是一个CentOS/RHEL Linux平台的软件多版本共存解决方案,为用户提供一种方便、安全地安装和使用应用程序和运行时环境的多…

    Linux 2023年6月7日
    086
  • CentOS/Redflag 7.3安装qemu 5.0记录

    安装实际上相当简单,只需下载源代码并编译即可。 [En] Installation is actually quite simple, just download the sour…

    Linux 2023年5月27日
    0109
  • linux学习相关资料整理

    Posted on2022-09-08 13:09 brad1208 阅读(20 ) 评论() 编辑 linux常用指令记录 Python3.9.9安装 supervisor安装与…

    Linux 2023年6月6日
    096
  • BGP路由衰减

    路由不稳定的主要表现形式是路由振荡(Route Flapping),即路由表中的某条路由反复消失和重现。 发生路由振荡时,路由器就会向邻居发布路由更新,收到更新报文的路由器需要重新…

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