首页
关于
翻译
留言
统计
搜索
1
以太坊简介
755 阅读
2
搭建 OpenAI 代理
688 阅读
3
第 4 章 创建您的第一个 React 组件
556 阅读
4
如何读懂编译后的 JavaScript 代码
544 阅读
5
第 9 章 使用 Jest 测试 React 应用
482 阅读
JavaScript
TypeScript
后端
Web
移动
运维
杂项
登录
Search
标签搜索
React
翻译
Vue
组件
Angular
工程化
库
Hook
框架
优化
路由
Node.js
Flash
部署
算法
可视化
Debug
测试
兼容
Web3
Flying
累计撰写
267
篇文章
累计收到
2
条评论
首页
栏目
JavaScript
TypeScript
后端
Web
移动
运维
杂项
页面
关于
翻译
留言
统计
搜索到
32
篇
Vue
相关的结果
2020-05-28
自定义 Vue 路由器
先前写过一篇为 material 组件自定义 AngularJS 路由器的文章。最近有一个为 Element UI 组件添加自定义路由器的需求,结合 vue-router 也不难实现。需求初始地址为 #city,不会选中区号按钮,面包屑 All;如果导航地址为 #city/0755,则选中0755,面包屑 All > 深圳点击区号按钮(021、0755)会相应修改访问地址(#city/021、#city/0755)点击区号按钮,面包屑会显示为 All > 城市名(广州、深圳)点击面包屑 All 跳转到初始地址 #city可以通过导航栏或浏览器的前进后退按钮导航同步修改浏览器标题栏为当前选择城市名一句话,如何实现区号按钮组、导航栏、浏览器导航三者的同步更新?实现区号按钮组新建 Breadcrumb.vue, 这里我们用 el-radio-group 来渲染区号按钮<el-radio-group v-model="selected" @change="handleChange"> <el-radio-button v-for="item in cities" :label="item.code" :key="item.code" > </el-radio-button> </el-radio-group>以下是单选按钮组遍历要用到的数据:const cities = [ { city: "上海", code: "021", degree: 28, }, { city: "北京", code: "010", degree: 24, }, { city: "广州", code: "020", degree: 33, }, { city: "深圳", code: "0755", degree: 32, }, ];我们为其绑定了 selected 保留,并声明了 handleChange 事件处理方法:handleChange(value) { console.log(value)可以简单测试以下,当切换单选按钮组,会打印不同的区号。为方便,我们没有将这部分实现放到了 Breadcrum 组件中,并没有单独拆分成一个组件。实现导航栏在 Breadcrum 组件中:<nav> <el-button class="el-icon-back" @click="back"></el-button> <el-button class="el-icon-right" @click="forward"></el-button> <router-link>All</router-link> <template v-if="selected"> <i class="el-icon-arrow-right"></i> {{ currentCity }} </template> </nav>我们在这里添加了前进后退按钮和面包屑,下面我们来实现单选按钮组与面包屑的同步。添加以下计算属性:computed: { currentCity() { const found = this.cities.find(item =>item.code === this.selected) if (found) { return found.city } return 'All' } }测试以下,点击区号按钮,面包屑会显示为 All > 城市名,我们完成了第二个需求。要实现其他需求,着重看 Vue Router。配置路由器根据强两个需求,新建 router\index.js,配置如下路由对象后,导出自定义路由器:export default new Router({ routes: [ { path: "/", redirect: "/city" }, { path: "/city/:code", name: "Breadcrumb", component: Breadcrumb } ] });第一个路由默认会跳转到 #city,第二个路由地址使用了参数 code,参数为 0755 则会跳转到 #city/0755。注意,Vue Router 中路由地址传参方式 :paramName。添加路由器在 App 组件中,引入之前的自定义路由器,将其最为插件添加 Vue 示例中。import router from "./router"; //... new Vue({ // ... router, // ... });对照需求 1 测试一下, 没啥问题后来看需求 3:点击面包屑 All 跳转到初始地址 #city。修改面包屑在 Breadcrumb 组件中做如下修改<router-link exact exact-active-class="exact" :to="{ path: '/city' }"> All </router-link><router-link> 组件支持用户在具有路由功能的应用中 (点击) 导航。这里,我们做了两件事:配置了目标路由被精确匹配的时候应该激活的样式配置了表示目标路由的链接 '/city'对照需求 1 测试一下。最后我们来看需求 4:通过导航栏或浏览器的前进后退导航自定义前进后退导航在 Breadcrumb 组件中,我们之前已经添加了前进后退按钮,现在需要实现交互:处理前进forward() { this.$router.go(1); }router.go(n) 方法的参数是一个整数,意思是在 history 记录中向前或者后退多少步,类似 window.history.go(n)。处理后退back() { this.$router.go(-1); }修改 handleChangehandleChange(value) { this.$router.push({ path: `/city/${value}` }); },注意:在 Vue 实例内部,你可以通过 $router 访问路由实例。因此你可以调用 this.$router.push。都是 Vue Router 编程式的导航,很简单。对照需求 1 测试一下。最后我们来看需求 4:通过导航栏或浏览器的前进后退导航同步修改浏览器标题栏这个操作需要直接修改 DOM,是一个副作用,需要监听$route.params.codewatch: { "$route.params.code": { handler(value) { document.title = this.currentCity this.selected = value; }, immediate: true, }, },注意,我们还同步修改了 selected ,并设置 immediate 为 true,确保该回调将会在侦听开始之后被立即调用。参考示例访问 codesandbox 查看项目代码使用 navbar 和 ui-router 动态加载外部模板React Router 简介
2020年05月28日
154 阅读
0 评论
1 点赞
2020-05-06
Vue baidu map 入门
vue-baidu-map 是百度地图的一个 Vue 插件,使用 vue-baidu-map ,本文将简单介绍 vue-baidu-map 的用法。并用一个真实案例来实现百度地图地址定位标点、关键字搜索定位,并根据点击坐标获取目标的经纬度及地址数据。
2020年05月06日
135 阅读
0 评论
1 点赞
2020-04-26
使用 Vue 自定义 SelectList 组件
最近我们的设计师对先前的系统进行了大量的重构。加了大量的 SelectList 的界面。所谓的“SelectList”,就是有选择状态的列表。点击选择某项可以获取该项的值。
2020年04月26日
100 阅读
0 评论
1 点赞
2020-04-05
Vue 中少用的组件访问
在之前的文章中,我们讲到了 Vue 组件之间交互用单向数据流——通过 Props 向子组件传递数据,通过 emit 使用事件抛出一个值的模式。在组件上使用 v-model、sync还支持双向数据绑定,这是 Vue 的一个特性。本文将介绍 Vue 处理边界情况有关的组件访问功能。
2020年04月05日
130 阅读
0 评论
1 点赞
2019-06-06
配置 Vue 多页面应用
大家也注意到了吧,前两篇文章讲述了怎样修改 Vue CLI 的设置来开发部署多页面应用,这里的设置是写不灵活的,使用场景有限。项目工程经常会说到配置。所谓配置,就是通过一些常量来代替其它配置文件中写死的代码,比如说 app1, app2。那么怎么在 Vue CLI 中配置多页面应用呢?
2019年06月06日
222 阅读
0 评论
0 点赞
1
2
3
4
...
7