zoukankan      html  css  js  c++  java
  • vue 开发笔记

    vue 开发记录

    marked 插件的使用

    import marked from "marked";
    import hljs from "highlight.js";
    import javascript from "highlight.js/lib/languages/javascript";
    import "highlight.js/styles/monokai-sublime.css";
    
    init(code){
        marked.setOptions({
                renderer: new marked.Renderer(),
                highlight: function(code) {
                return hljs.highlightAuto(code).value;
                },
                pedantic: false,
                gfm: true,
                tables: true,
                breaks: false,
                sanitize: false,
                smartLists: true,
                smartypants: false,
                xhtml: false
            });
        return marked(code);
    }
    

    axios 的使用及封装

    * 封装
    
    import axios from 'axios';
    import { Message } from 'element-ui';
    
    axios.defaults.timeout = 5000;
    axios.defaults.baseURL ='http://127.0.0.1:8000';
    
    
    //http request 拦截器
    axios.interceptors.request.use(
    config => {
        // 发送数据之前的操作
        
        return config;
    },
    error => {
        return Promise.reject(err);
    }
    );
    
    
    //http response 拦截器
    axios.interceptors.response.use(
    response => {
        // 返回数据之前的操作
    
        return response;
    },
    error => {
        return Promise.reject(error)
    }
    )
    
    
    /**
    * 封装get方法
    * @param url
    * @param data
    * @returns {Promise}
    */
    
    export function fetch(url,params={}){
    return new Promise((resolve,reject) => {
        axios.get(url,{
        params:params
        })
        .then(response => {
        resolve(response.data);
        })
        .catch(err => {
        reject(err)
        })
    })
    }
    
    
    /**
    * 封装post请求
    * @param url
    * @param data
    * @returns {Promise}
    */
    
    export function post(url,data = {}){
    return new Promise((resolve,reject) => {
        axios.post(url,data)
            .then(response => {
                resolve(response.data);
            },err => {
                reject(err)
            })
    })
    }
    
    /**
    * 封装patch请求
    * @param url
    * @param data
    * @returns {Promise}
    */
    
    export function patch(url,data = {}){
    return new Promise((resolve,reject) => {
        axios.patch(url,data)
            .then(response => {
            resolve(response.data);
            },err => {
            reject(err)
            })
    })
    }
    
    /**
    * 封装put请求
    * @param url
    * @param data
    * @returns {Promise}
    */
    
    export function put(url,data = {}){
    return new Promise((resolve,reject) => {
        axios.put(url,data)
            .then(response => {
            resolve(response.data);
            },err => {
            reject(err)
            })
    })
    }
    
    • 在main.js中注册方法
    import {post,fetch,patch,put} from './axios'
    Vue.prototype.$post=post;
    Vue.prototype.$fetch=fetch;
    Vue.prototype.$patch=patch;
    Vue.prototype.$put=put;
    
    • 调用
    this.$fetch("/article/").then(response => {
        this.articlelist = response;
    });
    

    markdown 标签过滤(使用正则)

        gettext(code) {
        text = codes
            .replace(/(\*\*|__)(.*?)(\*\*|__)/g, "") //全局匹配内粗体
            .replace(/\!\[[\s\S]*?\]\([\s\S]*?\)/g, "") //全局匹配图片
            .replace(/\[[\s\S]*?\]\([\s\S]*?\)/g, "") //全局匹配连接
            .replace(/<\/?.+?\/?>/g, "") //全局匹配内html标签
            .replace(/(\*)(.*?)(\*)/g, "") //全局匹配内联代码块
            .replace(/`{1,2}[^`](.*?)`{1,2}/g, "") //全局匹配内联代码块
            .replace(/```([\s\S]*?)```[\s]*/g, "") //全局匹配代码块
            .replace(/\~\~(.*?)\~\~/g, "") //全局匹配删除线
            .replace(/[\s]*[-\*\+]+(.*)/g, "") //全局匹配无序列表
            .replace(/[\s]*[0-9]+\.(.*)/g, "") //全局匹配有序列表
            .replace(/(#+)(.*)/g, "") //全局匹配标题
            .replace(/(>+)(.*)/g, "") //全局匹配摘要
            .replace(/\r\n/g, "") //全局匹配换行
            .replace(/\n/g, "") //全局匹配换行
            .replace(/\s/g, ""); //全局匹配空字符;
        return text;
        }
    }
    

    vue 使用mockjs 模拟服务器数据

    // 引入mockjs
    const Mock = require('mockjs');
    // 获取 mock.Random 对象
    const Random = Mock.Random;
    // mock一组数据
    const produceNewsData = function() {
        let articles = [];
        for (let i = 0; i < 100; i++) {
            let newArticleObject = {
                title: Random.csentence(5, 30), //  Random.csentence( min, max )
                thumbnail_pic_s: Random.dataImage('300x250', 'mock的图片'), // Random.dataImage( size, text ) 生成一段随机的 Base64 图片编码
                author_name: Random.cname(), // Random.cname() 随机生成一个常见的中文姓名
                date: Random.date() + ' ' + Random.time() // Random.date()指示生成的日期字符串的格式,默认为yyyy-MM-dd;Random.time() 返回一个随机的时间字符串
            }
            articles.push(newArticleObject)
        }
     
        return {
            articles: articles
        }
    }
     
    // Mock.mock( url, post/get , 返回的数据);
    Mock.mock('/news/index', 'post', produceNewsData);
    
  • 相关阅读:
    PyQt5经典案例
    JS实现深拷贝(解决循环引用等问题)
    React/Vue里的key到底有什么用?看完这篇你就知道了!(附demo代码)
    linux盘符操作命令
    Ubuntu20.04下安装opencv for C++
    数字图像处理-python随机噪声、高斯噪声和椒盐噪声实现
    数字图像处理-(1)pyqt页面
    数字图像处理-Python读取BMP文件
    docker笔记
    CentOS7安装GO
  • 原文地址:https://www.cnblogs.com/asia9847/p/10895977.html
Copyright © 2011-2022 走看看