Vue之路由

忘是亡心i 2021-11-22 21:58 382阅读 0赞

Vue之路由

  1. **后端路由:**对于普通的网站,所有的超链接都是URL地址,所有的URL地址都对应服务器上对应的资源;
  2. **前端路由:**对于单页面应用程序来说,主要通过URL中的hash(#号)来实现不同页面之间的切换,同时,hash有一个特点:HTTP请求中不会包含hash相关的内容;所以,单页面程序中的页面跳转主要用hash实现;
  3. 在单页面应用程序中,这种通过hash改变来切换页面的方式,称作前端路由(区别于后端路由);

在 vue 中使用 vue-router

  1. 导入 vue-router 组件类库:

  2. 使用 router-link 组件来导航

    登录
    注册

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

  4. 创建使用Vue.extend创建组件

    // 4.1 使用 Vue.extend 来创建登录组件

    1. var login = Vue.extend({
    2. template: '<h1>登录组件</h1>'
    3. });
    4. // 4.2 使用 Vue.extend 来创建注册组件
    5. var register = Vue.extend({
    6. template: '<h1>注册组件</h1>'
    7. });
  5. 创建一个路由 router 实例,通过 routers 属性来定义路由匹配规则

    // 5. 创建一个路由 router 实例,通过 routers 属性来定义路由匹配规则

    1. var router = new VueRouter({
    2. routes: [
    3. { path: '/login', component: login },
    4. { path: '/register', component: register }
    5. ]
    6. });
  6. 使用 router 属性来使用路由规则

    // 6. 创建 Vue 实例,得到 ViewModel

    1. var vm = new Vue({
    2. el: '#app',
    3. router: router // 使用 router 属性来使用路由规则
    4. });

设置路由重定向

设置路由高亮

设置路由切换动效

在路由规则中定义参数

  1. 在规则中定义参数:

    { path: ‘/register/:id’, component: register }

  2. 通过 this.$route.params来获取路由中的参数:

    var register = Vue.extend({

    1. template: '<h1>注册组件 --- {
    2. {this.$route.params.id}}</h1>'
    3. });

使用 children 属性实现路由嵌套

  1. <div id="app">
  2. <router-link to="/account">Account</router-link>
  3. <router-view></router-view>
  4. </div>
  5. <script>
  6. // 父路由中的组件
  7. const account = Vue.extend({
  8. template: `<div>
  9. 这是account组件
  10. <router-link to="/account/login">login</router-link> |
  11. <router-link to="/account/register">register</router-link>
  12. <router-view></router-view>
  13. </div>`
  14. });
  15. // 子路由中的 login 组件
  16. const login = Vue.extend({
  17. template: '<div>登录组件</div>'
  18. });
  19. // 子路由中的 register 组件
  20. const register = Vue.extend({
  21. template: '<div>注册组件</div>'
  22. });
  23. // 路由实例
  24. var router = new VueRouter({
  25. routes: [
  26. { path: '/', redirect: '/account/login' }, // 使用 redirect 实现路由重定向
  27. {
  28. path: '/account',
  29. component: account,
  30. children: [ // 通过 children 数组属性,来实现路由的嵌套
  31. { path: 'login', component: login }, // 注意,子路由的开头位置,不要加 / 路径符
  32. { path: 'register', component: register }
  33. ]
  34. }
  35. ]
  36. });
  37. // 创建 Vue 实例,得到 ViewModel
  38. var vm = new Vue({
  39. el: '#app',
  40. data: {},
  41. methods: {},
  42. components: {
  43. account
  44. },
  45. router: router
  46. });
  47. </script>

命名视图实现经典布局

  1. 标签代码结构:







  2. JS代码:

  3. CSS 样式:

watch属性的使用

考虑一个问题:想要实现 两个文本框的内容改变,则全名的文本框中的值也跟着改变;(用以前的知识如何实现???)

  1. 监听data中属性的改变:


    +
    =
    {
    {fullName}}

  2. 监听路由对象的改变:


    登录
    注册


computed计算属性的使用

  1. 默认只有getter的计算属性:


    +
    =
    {
    {fullName}}

  2. 定义有gettersetter的计算属性:







    {
    {fullName}}

watchcomputedmethods之间的对比

  1. computed属性的结果会被缓存,除非依赖的响应式属性变化才会重新计算。主要当作属性来使用;
  2. methods方法表示一个具体的操作,主要书写业务逻辑;
  3. watch一个对象,键是需要观察的表达式,值是对应回调函数。主要用来监听某些特定数据的变化,从而进行某些具体的业务逻辑操作;可以看作是computed和methods的结合体;

nrm的安装使用

作用:提供了一些最常用的NPM包镜像地址,能够让我们快速的切换安装包时候的服务器地址;
什么是镜像:原来包刚一开始是只存在于国外的NPM服务器,但是由于网络原因,经常访问不到,这时候,我们可以在国内,创建一个和官网完全一样的NPM服务器,只不过,数据都是从人家那里拿过来的,除此之外,使用方式完全一样;

  1. 运行npm i nrm -g全局安装nrm包;
  2. 使用nrm ls查看当前所有可用的镜像源地址以及当前所使用的镜像源地址;
  3. 使用nrm use npmnrm use taobao切换不同的镜像源地址;

转载于:https://www.cnblogs.com/Yaucheun/p/10836905.html

发表评论

表情:
评论列表 (有 0 条评论,382人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Vue跳转

    所谓的router就是动态的往根里面挂载组件,而不是手动挂载。 vue路由配置的步骤: https://router.vuejs.org/ 1.安

    相关 Vue的嵌套

    路由的嵌套在我的理解看来就是一个父路由里包含一个或多个子路由,实现其实很简单,重要的代码也就只有几行。下面我做的这个小例子就很容易理解。 ![在这里插入图片描述][water

    相关 Vue

    Vue之路由 1. \\后端路由:\\对于普通的网站,所有的超链接都是URL地址,所有的URL地址都对应服务器上对应的资源; 2. \\前端路由:\\对于单页面应用程