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);
    
  • 相关阅读:
    gulp-css-spriter 将css代码中的切片图片合并成雪碧图
    通过JS模拟select表单,达到美化效果[demo]
    jQuery拖拽 & 弹出层
    sublime text 快速编码技巧 GIT图
    原生JS不到30行,实现类似javascript MVC的功能-minTemplate
    javascript拖拽原理与简单实现方法[demo]
    滚动焦点图实现原理和实践[原创视频]
    谈一谈值类型与引用类型和装箱与拆箱
    【原创】asp.net内部原理(三) 第三个版本 (最详细的版本)
    由JS函数返回值引发的一场”血案"
  • 原文地址:https://www.cnblogs.com/asia9847/p/10895977.html
Copyright © 2011-2022 走看看