当前位置:首页 » 编程软件 » vue项目怎么编译成html

vue项目怎么编译成html

发布时间: 2023-01-07 09:58:53

‘壹’ vue怎么渲染html

new Vue,执行初始化
挂载$mount方法,通过自定义Render方法、template、el等生成Render函数
通过Watcher监听数据的变化
当数据发生变化时,Render函数执行生成VNode对象
通过patch方法,对比新旧VNode对象,通过DOM Diff算法,添加、修改、删除真正的DOM元素
至此,整个new Vue的渲染过程完毕。

‘贰’ 在vue中后台返回的文本包含标签如何解析为html

在项目中遇到解析html,发现v-html并不满足复杂的渲染,就使用jq来处理
1.v-html 处理简单的标签
如:text="<p>vue转换</p>"
html中解析:
<p v-html="text">{{text}}</p>

2.返回标签中还有img、a标签,使用v-html就不会转换方法如下:

使用jquery处理:
1.在标签定义class
<div class="descript"></div>
2.安装jq
npm install jquery --save
3.在使用的地方引入
import $ from 'jquery'

async loadProctDetail(cData) {
const { data } = await getProctDetail(cData)
this.descript = data.data.sku //接口返回数据赋值
this.loadhtml() //调用方法
},
loadhtml() {
('.descript').html(this.descript) //赋值
const srcdescript = ('.descript').find('img') //找到当前所有的a标签、img标签
for (let i = 0; i < srcdescript.length; i++) { //遍历
let a = srcdescript.eq(i).attr('href') //找到a标签的href属性
let b = evals.eq(i).attr('src') //找到img标签的src属性
//this. url + a) //赋值
srcdescript.eq(i).attr('src', this.$url + b) //赋值
//如果接口返回有就不添加:
// srcdescript.eq(i).attr('href', a) //赋值
//srcdescript.eq(i).attr('src', b) //赋值
}
}

‘叁’ Vue基础篇

内容简介:
1)Vue指令
2)computed和watch
3)生命周期钩子
4)组件间的传参
5)插槽
6)修饰符
7)nextTick()

前端三大框架:
Vue:尤雨溪开发
React:Facebook主导开发
Angular:谷歌主导开发

为什么选择Vue?
1.国内Vue的市场份额占比多
2.简单易上手,非常适合前端开发初学者学习

前置知识:
1.HTML、CSS和JS基础
2.了解Node和npm
3.webpack(可选,vue-cli已经封装了打包功能)

使用Vue的两种方式:
1.直接script标签引入vue.js文件
2.基于Node环境创建Vue项目(使用vue-cli初始化一个Vue项目)

前端框架与库的区别
• jquery 库 -> DOM(操作DOM) + 动画+ ajax请求
• 框架 -> 全方位功能

一、指令
指令(Directives)是带有 v- 前缀的特殊属性。

插值表达式和v-text指令被直接解析为字符串;元素绑定 v-html 指令后,解析了msg 变量值里面的html标签,输出真正的html元素。

v-model也可用在自定义组件上。

5.v-for(列表渲染)
使用v-for时应绑定key属性,key属性可以用来提升v-for渲染的效率

Vue 将被侦听的数组的变更方法进行了包裹,所以它们也将会触发视图更新。这些被包裹过的方法包括:
push()
pop()
shift()
unshift()
splice()
sort()
reverse()
由于 JavaScript 的限制,Vue 不能检测数组、对象的以下变化:1. 利用索引直接设置数组的某一项 2. 对象属性的添加或删除

二、computed和watch

三、生命周期钩子
什么是Vue生命周期?
Vue 实例从创建到销毁的过程,就是生命周期。也就是从开始创建、初始化数据、编译模板、挂载Dom→渲染、更新→渲染、卸载等一系列过程。
总共分为8个阶段:创建前/后,挂载前/后,更新前/后,销毁前/后。
1)beforeCreate
此时实例上只有一些生命周期函数和默认的事件,此时data computed watch methods上的方法和数据均不能访问
2)created
此时可以读取data的值,并可以对其进行操作,把方法、计算属性也都挂载到了实例。但是依旧不能访问el,不能获取到DOM元素。
在这个钩子函数中,我们可以进行http请求,把请求到的数据储存在data中。
3)模板编译,把data里面的数据和vue语法写的模板编译成HTML
4)beforeMount
将编译完成的HTML挂载到对应虚拟DOM,此时还未挂载到页面上
5)mounted
编译好的HTML已挂载到页面上
6)beforeUpdate和updated
数据更新时调用,通常使用计算属性或侦听器取而代之
7)beforeDestroy
销毁所有观察者、组件及事件监听
8)destroyed
组件已经完全销毁,组件中的数据、方法、计算属性、过滤器等都已不可用。

四、组件间的通信
1.父子组件间的通信
父子组件通信可以总结为props向下传递,事件向上传递。

单向数据流:父级 prop 的更新会向下流动到子组件中,但反过来不行。
每个Vue实例都实现了事件接口:子组件使用 this.$emit(eventName,optionalPayload) 触发自定义事件。父组件在使用子组件的地方直接用v-on来监听子组件触发的事件。

父组件通过ref直接调用子组件中的方法。
子组件调用父组件中的方法:
1)子组件中通过 this.$parent.fatherMethod() 来调用父组件的方法
2)子组件用$emit向父组件触发一个事件,父组件监听这个事件
3)父组件通过props把方法传入子组件中(type: Function),在子组件里直接调用这个方法

2.兄弟组件间的通信
其中一种方法是让父组件充当两个子组件之间的中间件(中继);
另一种就是使用EventBus(事件总线),它允许两个组件之间直接通信,而不需要涉及父组件:

Vue原型上的方法:

五、插槽

3)作用域插槽

使用场景:
在使用ElementUI组件库的el-table组件时,表格的编辑和删除操作要用到作用域插槽。因为el-table组件,就是当前组件的子组件。通过作用域插槽很容易拿到当前表格行的索引和内容,这样就可以很方便地进行编辑、删除的操作。v-slot指令是Vue2.6之后,作用域插槽的新语法,旧语法(slot-scope)现在还保留,但3.0之后会移除。

六、修饰符

2.事件修饰符
vue提倡的是在方法中只有纯粹的数据逻辑,而不是去处理 DOM 事件细节,所以提供了事件修饰符用于DOM的事件处理。

3.按键修饰符

七、nextTick()
定义:在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM。(当数据更新了,在dom中渲染后,自动执行nextTick的回调)

应用场景:需要在视图更新之后,基于新的视图进行操作。

‘肆’ vuejs目基本完成,怎么编译成html js css

动态添加进去的tr不能应用js和css,在tr添加进页面后,再调用一下$("tr").addClass("样式名"); 重新给他添加一下样式即可.至于js的话,在绑定事件的时候用:$("tr").live(f

热点内容
java返回this 发布:2025-10-20 08:28:16 浏览:564
制作脚本网站 发布:2025-10-20 08:17:34 浏览:853
python中的init方法 发布:2025-10-20 08:17:33 浏览:554
图案密码什么意思 发布:2025-10-20 08:16:56 浏览:732
怎么清理微信视频缓存 发布:2025-10-20 08:12:37 浏览:655
c语言编译器怎么看执行过程 发布:2025-10-20 08:00:32 浏览:973
邮箱如何填写发信服务器 发布:2025-10-20 07:45:27 浏览:226
shell脚本入门案例 发布:2025-10-20 07:44:45 浏览:85
怎么上传照片浏览上传 发布:2025-10-20 07:44:03 浏览:775
python股票数据获取 发布:2025-10-20 07:39:44 浏览:681