02 2020 档案

摘要:vue-cli中组件之间的参数传递,只能是父组件向子组件传参。 1、父组件app.vue的修改 在父组件中的data中返回参数;在调用子组件时,进行数据绑定。 <template> <div id="app"> // 变红的'msgJsonAPP是用来和子组件传递的名称,需要与子组件接收名一致 <H 阅读全文
posted @ 2020-02-26 21:18 xsan 阅读(1236) 评论(0) 推荐(0) 编辑
摘要:组件文件位置 Vue-cli的组件都写在项目文件夹下的`src`文件夹下的`components`下,每个组件单独一个`.vue`文件。 基本组件文件结构 每个组件文件都包含:模版(template)、组件参数、组件样式(style) // 模版 <template> </template> // 阅读全文
posted @ 2020-02-26 19:40 xsan 阅读(459) 评论(0) 推荐(0) 编辑
摘要:node_modules:本地安装的包的文件夹。 public:项目出口文件。 src:项目源文件: assets:资源文件,包括字体,图片等。 components:组件文件。 App.vue:入口组件。 main.js:webpack在打包的时候的入口文件。 babel.config.js:es 阅读全文
posted @ 2020-02-26 17:13 xsan 阅读(366) 评论(0) 推荐(0) 编辑
摘要:安装node.js 从node.js的中文官网下载安装包:https://nodejs.org/zh-cn/ 然后就和安装其他程序一样进行安装即可。在安装的时候会顺带将npm这个包管理工具安装上。 安装完成后可以在终端输入node查看。 使用淘宝镜像 在终端执行: npm install -g cn 阅读全文
posted @ 2020-02-26 16:56 xsan 阅读(455) 评论(0) 推荐(0) 编辑
摘要:导航解析流程:1、导航被触发2、在失活的组件里调用beforeRouteLeave离开守卫3、调用全局的beforeEach守卫4、在重用的组件里调用beforeRouteUpdate守卫5、在路由配置里调用beforeEnter。6、解析异步路由组件7、在被激活的组件里调用beforeRouteE 阅读全文
posted @ 2020-02-25 23:11 xsan 阅读(321) 评论(0) 推荐(0) 编辑
摘要:组件导航守卫,就是组件中写守卫。也就是进入到这个组件之前会调用的方法。组件导航守卫大体分为:`beforeRouteEnter`、`beforeRouteUpdate`、`beforeRouteLeave`三个。 beforeRouteEnter:在进入组件之前调用的。在这里不能使用`this`,因 阅读全文
posted @ 2020-02-25 23:09 xsan 阅读(300) 评论(0) 推荐(0) 编辑
摘要:导航守卫: 就是导航过程中各个阶段的钩子函数。分为:全局导航守卫、路由导航守卫、组件导航守卫。 全局导航守卫: 在整个网页中,只要发生了路由变化,就会触发。全局导航守卫主要包含两个函数:beforeEach、afterEach。 beforeEach: 在路由发生了改变,但是还没有成功跳转的时候会调 阅读全文
posted @ 2020-02-25 22:49 xsan 阅读(423) 评论(0) 推荐(0) 编辑
摘要:重定向: 在定义路由的时候,可以通过添加`redirect`参数,重定向到另外一个页面。 routes: [{ path: "/", redirect: "/article" }] 别名: 在定义路由的时候,可以通过添加`alias`参数,表示该url的别名,以后也可以通过这个别名来访问到这个组件。 阅读全文
posted @ 2020-02-25 20:41 xsan 阅读(1235) 评论(0) 推荐(0) 编辑
摘要:背景: 在一个url中(一个页面中)使用多个组件,此时,需要为组件进行命名,然后通过命名区分各组件的使用位置 用法: 1、在写路由时,将原先的`component`多加一个`s`改为`components`,并且以键值对的形式进行命名。 let router = new VueRouter({ ro 阅读全文
posted @ 2020-02-25 19:59 xsan 阅读(298) 评论(0) 推荐(0) 编辑
摘要:背景 `<router-link>`是在用户点击的情况下进行页面更新,但是有时候,我们想要在`js`中手动的修改页面的跳转,此时就需要“编程式导航”了。 方法 有三种方法: 1、`this.$router.push`:转到下一个`url`,会把新传入的url添加到浏览器的`history`中。 pu 阅读全文
posted @ 2020-02-25 17:35 xsan 阅读(508) 评论(0) 推荐(0) 编辑
摘要:背景: 在大的路由下面有时候需要一些字路由进行切换数据,那么这时候需要使用路由嵌套。 方法: 1、直接在父路由中添加`children`字路由,格式和父路由一样。 let router = new VueRouter({ routes: [{ path: "/", component: index, 阅读全文
posted @ 2020-02-25 16:03 xsan 阅读(356) 评论(0) 推荐(0) 编辑
摘要:404错误分为两种: 1> 页面中不存在该路由; 2> 页面中传递的参数在服务器端不存在,比如,个人中心是需要从后端获取数据的,但是你查询的用户是不存在的,此时也是404错误。 配置 在路由规则中,`*`代表的是任意字符。所以只要在路由的最后加一个`*`路由,那么以后没有匹配到的`url`都会被导入 阅读全文
posted @ 2020-02-25 14:49 xsan 阅读(5561) 评论(0) 推荐(1) 编辑
摘要:在使用路由参数时,比如从`/our/Xsan`跳转到`/our/foo`,原来的组件实例会被复用。因为这两个路由都是渲染的同一个组件,比起销毁再重建,复用则显得更加高效。不过,这也就意味着组件的生命周期钩子函数将不会被再次调用。 解决办法: 1、监听`this.route`属性。通过判断`to`和` 阅读全文
posted @ 2020-02-25 11:23 xsan 阅读(629) 评论(0) 推荐(0) 编辑
摘要:用法: 在url中,通过定义参数,那么以后url中就可以动态的传递这些参数。语法:`/our/:参数名` let router = new VueRouter({ routes: [ { // user为参数 path: "/our/:user", component: our } ] }) 2. 阅读全文
posted @ 2020-02-24 22:40 xsan 阅读(1020) 评论(0) 推荐(0) 编辑
摘要:当我们想创建单页面应用时,可以使用`vue-router`进行实现。 cdn引用: <script src="https://unpkg.com/vue-router/dist/vue-router.js"></script> 使用方法: 1、`vue-router`必须结合组件使用,因为加载的内容 阅读全文
posted @ 2020-02-24 17:32 xsan 阅读(323) 评论(0) 推荐(0) 编辑
摘要:该项目主要是练习vue的基础语法,其中涉及到`v-model`数据双向绑定、事件绑定的修饰符(阻止默认事件发生)、过滤器。项目使用的是bootstrap的css样式进行布局,实现了图书的动态增加、动态查找的功能。 最终效果: 源码: <!DOCTYPE html> <html lang="en"> 阅读全文
posted @ 2020-02-24 15:02 xsan 阅读(485) 评论(0) 推荐(0) 编辑
摘要:过滤器是数据在真正渲染到页面的时候,可以使用过滤器对数据进行一些处理,把最终处理的结果渲染到网页中。 过滤器的使用: 过滤器可以用在两个地方:`{{ }}`和`v-bind`表达式。过滤器应该被添加在`JavaScript`的尾部通过管道符("|")进行分割。 注意: 需要写在创建实例之前。 `fu 阅读全文
posted @ 2020-02-24 10:58 xsan 阅读(186) 评论(0) 推荐(0) 编辑
摘要:生命周期函数代表的是`vue`实例、`vue`组件,在网页中各个生命阶段所执行的函数。生命周期函数可以分为创建阶段、运行阶段及销毁阶段的函数。这些阶段的函数都是和methods同级的,不是写在methods中。 创建期间的函数: 1)beforeCreate:在创建实例前所执行的函数;Vue已经创建 阅读全文
posted @ 2020-02-23 18:56 xsan 阅读(173) 评论(0) 推荐(0) 编辑
摘要:当定义完一个组件后,可能在使用时还需要往这个组件中插入新的元素或者文本。这个时候就可以使用插槽来完成。 在定义`template`时,在需要插入的地方使用`<slot></slot>`标识出来。在使用时只需将传递的值放在定义的组件标签包裹起来即可。 插槽可以设置默认值。在定义template时,用` 阅读全文
posted @ 2020-02-22 11:15 xsan 阅读(419) 评论(0) 推荐(0) 编辑
摘要:一个组件上的`v-model`默认会利用名为`value`的prop(属性)和名为input的事件,但是像单选框、复选框等类型的输入控件可能会将`value`特性用于不同的目的。这时候我们可以在定义组件的时候,通过设置`model`选项可以用来实现不同的处理方式。 在创建组件的时候,添加`model 阅读全文
posted @ 2020-02-21 18:32 xsan 阅读(1736) 评论(0) 推荐(0) 编辑
摘要:当我们需要在操作组件后引起组件之外的元素发生变化时,就需要是这里的内容。比如:当选中书后,自动显示您选中的书名。其中书籍列表是使用组件写的。显示选中书籍名是在组件之外。 在添加事件的时候需要注意一下事项: 1、在定义组件时`Vue.component(组件名,{props(参数),template( 阅读全文
posted @ 2020-02-21 16:36 xsan 阅读(2472) 评论(0) 推荐(0) 编辑
摘要:定义组件时,如果是需要参数传递则,将要传递的参数放在`props`中,`props`可以是一个数组也可以是一个字典,字典中可以定义是否是必须传递和参数的类型。如下: porps:{ books:{ type: Array, required: true, default: '四大名著' } } 在传 阅读全文
posted @ 2020-02-20 19:00 xsan 阅读(19434) 评论(0) 推荐(0) 编辑
摘要:当某些html代码是重复使用时,就可以将其写成组件,直接调用,方便以后的修改。 需要注意的是:定义的组件只能在注册过的代码块中使用,且定义组件的Vue.component是 和注册代码是同级的。 其形式为: Vue.component("组件名", { template: "定义的html代码", 阅读全文
posted @ 2020-02-20 18:04 xsan 阅读(637) 评论(0) 推荐(0) 编辑
摘要:v-model指定可以实现表单值与属性的双向绑定。即表单元素中更改的值会自动的更新属性中的值,属性中的值发生变化会自动更新表单里的值。 绑定的属性和事件 v-model在内部输入不同的元素使用不同的属性并抛出不同的事件。 text和textarea元素使用value属性和input事件; check 阅读全文
posted @ 2020-02-20 17:24 xsan 阅读(1166) 评论(0) 推荐(0) 编辑
摘要:监听属性可以针对某个属性进行监听,当监听的属性的值发生了变化,则会执行相应的函数。 监听的函数要写在vue的watch属性中。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" c 阅读全文
posted @ 2020-02-20 14:56 xsan 阅读(2057) 评论(0) 推荐(0) 编辑
摘要:一般情况下属性都是放在data中的,但是有些属性可能是需要经过一些计算才能得出,那么,我们可以把这类属性变成计算属性。此时,需要将这些计算属性写到computed中,和将属性写在data中是一样的。表面上看,计算属性和methods一样,实际上,计算属性更加智能,他是基于它们的响应式依赖进行缓存的。 阅读全文
posted @ 2020-02-20 11:29 xsan 阅读(2188) 评论(1) 推荐(0) 编辑
摘要:v-on: v-on是给元素绑定事件,其简写是“@+事件名” event事件: 将event元素传递给函数时,在传递时一定要写成“$event”,而函数中的形参是什么都无所谓了。 事件修饰符: .prevent:阻止默认时间的执行; .stop:event.stopPropagation,阻止事件冒 阅读全文
posted @ 2020-02-20 10:20 xsan 阅读(1046) 评论(0) 推荐(0) 编辑
摘要:当vue的data中的值发生变化后,视图中引用部分的值是否会同时发生变化呢?首先,我们要知道有哪些更新的类型。 更新的类型 1、直接赋值更新。this.heros=[' '],模板会立即更新。 2、通过函数更新。this.heros.push("xx)。 更新的函数: push():在数组最后添加元 阅读全文
posted @ 2020-02-19 23:17 xsan 阅读(3513) 评论(0) 推荐(0) 编辑
摘要:<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <script src="htt 阅读全文
posted @ 2020-02-18 18:04 xsan 阅读(2244) 评论(0) 推荐(0) 编辑
摘要:<div id="input_img_father_div"> <!--设置input的position为absolute,使其不按文档流排版,并设置其包裹整个布局 --> <!-- 设置opactity为0,使input变透明 --> <!-- 只接受jpg,gif和png格式 --> <inpu 阅读全文
posted @ 2020-02-17 16:03 xsan 阅读(855) 评论(0) 推荐(0) 编辑
摘要:自定义分页算法: 1 from django.core.paginator import Paginator 2 3 4 def page_fun(table_data_obj, page, page_split, around_count=2): 5 ''' 6 table_data_obj: 数 阅读全文
posted @ 2020-02-14 14:42 xsan 阅读(215) 评论(0) 推荐(0) 编辑
摘要:一、配置环境 django 3.0.3 qiniu 7.2.6 全部可以使用pip安装 二、在app的目录下创建qiniu_config.py文件,用于存放七牛云的相关配置信息 qiniu_config = { 'access_key': '', 'secret_key': '', 'bucket_ 阅读全文
posted @ 2020-02-07 19:40 xsan 阅读(964) 评论(2) 推荐(0) 编辑
摘要:一、注册七牛云账号 二、创建存储空间 1、登录七牛云,进入管理控制台 2、创建空间 三、添加cdn域名 参照该官方文档配置:https://developer.qiniu.com/fusion/kb/1322/how-to-configure-cname-domain-name 四、获取access 阅读全文
posted @ 2020-02-07 19:31 xsan 阅读(247) 评论(0) 推荐(0) 编辑
摘要:# -*- coding: utf-8 -*- # flake8: noqa import qiniu from qiniu import CdnManager # 账户ak,sk access_key = '...' secret_key = '...' auth = qiniu.Auth(acc 阅读全文
posted @ 2020-02-07 15:44 xsan 阅读(636) 评论(0) 推荐(0) 编辑