Vue 表情输入组件,微信face表情组件

VUE表情包输入组件,先来张成品图看看。

Vue 表情输入组件,微信face表情组件_第1张图片

年底了没事干,把以前做过的项目中的组件拿出来再复习一下, 先说说思路吧。
注意:

1. 项目是用vue-cli3.0搭建起来的项目, 参考cli3.0官网地址

2.样式是用scss需要安装依赖: npm install node-sass sass-loader -D

思路: 页面内容总体分为三块区域(内容区,表情区,输入区),引入JSON文件表情库渲染到页面,给每个表情绑定点击事件并传递下标,将用户点击过的表情存放到一个数组中,赋值给input标签的value中让其显示先输入框内,然后给 确定 按钮绑定点击事件,用户点击确定按钮将input中的value值赋值给内容区(内容去也要创建一个数组)让其渲染到你要的位置上,这样就完成了表情的渲染和发送。

html区域


 
JS区域

// 导入JSON格式的表情库
const appData = require("@/assets/emojis.json");
export default {
  name: "home",
  data() {
    return {
      textConent: "",
      faceList: [],
      faceShow: false,
      getBrowString: "",
      content: []
    };
  },
  methods: {
    // 表情
    faceContent() {
      this.faceShow = !this.faceShow;
      if (this.faceShow == true) {
        for (let i in appData) {
          this.faceList.push(appData[i].char);
        }
      } else {
        this.faceList = [];
      }
    },
    // 获取用户点击之后的标签 ,存放到输入框内
    getBrow(index) {
      for (let i in this.faceList) {
        if (index == i) {
          this.getBrowString = this.faceList[index];
          this.textConent += this.getBrowString;
        }
      }
    },
    // 将input的内容渲染到页面上
    referContent() {
      if (this.textConent == "") return alert("请输入内容");
      // 存入
      this.content.push(this.textConent);
      // 清空input数据
      this.textConent = "";
      // 关闭表情列表
      this.faceShow = false;
    }
  },
};
 
 
css区域



 
代码在我的github上:github地址:https://github.com/wanglei-bilibili/Vue-WeiXin-face
欢迎大家来提出意见,共同努力进步。
 

转自https://blog.csdn.net/qq_37141008/article/details/86528345

你可能感兴趣的:(JavaScript知识点)